开发者

Node.js: Server.js is getting cluttered with functions

开发者 https://www.devze.com 2023-04-05 07:37 出处:网络
I have a server.js with many functions. app.post \'/record2\', (req,res) -> app.post \'/record\', (req,res) ->

I have a server.js with many functions.

app.post '/record2', (req,res) ->
app.post '/record', (req,res) ->
app.post '/incoming', (req,res) ->
app.post '/call', (req,res) ->

etc..

It's starting to become very confusing. What's the best way to make the server.js cleaner 开发者_如何学JAVAand easier to understand?

Thanks


I assume you're using Express? Something I've done in the past is create modules for related handlers. E.g.,

Something like this in record-handlers.js:

module.exports = {
    record2: function(req, res) { ... },
    record: function(req, res) { ... }
};

And then in server.js:

var recordHandlers = require('./record-handlers');

app.post('/record2', recordHandlers.record2);
app.post('/record', recordHandlers.record);
...

*My apologies for converting your Coffeescript to JS - I don't know CS at all.


As you can see here (lines 231 through 235.)

switch (config.method) {

    case 'GET': server.get(config.path, internals.preprocessRequest, routes, config.handler, internals.finalizeResponse); break;
    case 'POST': server.post(config.path, internals.preprocessRequest, routes, config.handler, internals.finalizeResponse); break;
    default: process.exit(1); break;
}

the routes and the handlers are in different modules.


Another strategy would be to use a catch-all route like this :

/:action

and use a switch statement to call the required function based on the value of

req.param('action')

0

精彩评论

暂无评论...
验证码 换一张
取 消