【问题标题】:Node.js: Server.js is getting cluttered with functionsNode.js:Server.js 变得杂乱无章
【发布时间】:2011-09-14 13:27:03
【问题描述】:

我有一个server.js,有很多功能。

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

etc..

它开始变得非常混乱。使 server.js 更简洁、更易于理解的最佳方法是什么?

谢谢

【问题讨论】:

  • 函数不会使代码混乱。只有它们里面的代码。

标签: javascript node.js coffeescript


【解决方案1】:

我假设您使用的是 Express?我过去做过的事情是为相关处理程序创建模块。例如,

record-handlers.js 中的类似内容:

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

然后在server.js:

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

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

*我很抱歉将你的 Coffeescript 转换为 JS - 我根本不懂 CS。

【讨论】:

    【解决方案2】:

    如您所见here(第 231 到 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;
    }
    

    路由和处理程序位于不同的模块中。

    【讨论】:

      【解决方案3】:

      另一种策略是使用这样的包罗万象的路线:

      /:action
      

      并使用switch语句根据

      的值调用所需的函数

      req.param('action')

      【讨论】:

        猜你喜欢
        • 2017-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 2018-12-04
        • 2010-11-24
        相关资源
        最近更新 更多