如何拆分单片node.js javascript

时间:2013-09-30 13:28:26

标签: javascript node.js

我有一个不断增长的 node.js 服务器应用程序,我想把它分成几个文件。这是一个工作代码片段,演示了整体 server.js 大致如下所示:

var express = require('express');
var app = express();
// other initialization code etc

//************** start of part to be moved foo.js

var fooTestData = {data: "data", id:1};

app.get("/foo/ajax", function(req, res) {
    res.json(fooTestData);
});

// more REST stuff and other foo-specific code

//************** end of part to be moved

// more stuff which remains in server.js

// http://localhost:8888/foo/ajax
app.listen(8888);

一个理想的答案有两段具有相同功能的代码:移动指示部分后 server.js 是什么样的,以及 foo.js 与复制的内容相似代码和任何所需的额外代码。

2 个答案:

答案 0 :(得分:7)

foo.js

var fooTestData = {data: "data", id:1};

exports.setApp = function (app) {

    app.get("/foo/ajax", function(req, res) {
        res.json(fooTestData);
    });

    // more REST stuff and other foo-specific code
};

new sever.js

var express = require('express');
var app = express();

require('./foo.js').setApp(app);

// other initialization code etc


// more stuff which remains in server.js

// http://localhost:8888/foo/ajax
app.listen(8888);

这是一个简单的例子。如果你需要一些更复杂的东西,你可能想看看github上的其他快递程序。它可能是一个很好的灵感来源。

答案 1 :(得分:1)

我建议你看看一些基于快速的(MVC)框架。看看at the list of frameworks。此外,如果您正在进行Web服务并通过RESTfull请求与其进行通信,您可能需要检查sails.js(基于表达式的框架)。请注意,sails不仅限于RESTfull请求,还可以帮助您扩展项目的开箱即用。

祝你好运!