在子模块中拆分快速应用程序

时间:2014-09-12 15:15:36

标签: node.js express

我有这个应用程序:

// Some modules
var express = require("express");
var ... = require("...");
var ... = require("...");

// Here will go the db
var db;

// Init express
var app = express();

// Express configuration
app.use(...);
app.use(...);

// Routes
app.get("/", function() {});
app.get("/api/v1/a", function() {});
app.get("/api/v1/b", function() {});

// Connect to the db, store it in "db" and then set the port of the app
MongoClient.connect("mongodb://localhost/db", function(err, connection) {
  db = connection;
  app.listen(3000);
});

我想将此应用分成多个文件,例如我想将 api 路由移到api.js文件中。

我试过这个api.js

function(app, db) {
  app.get("/api/v1/a", function() {});
  app.get("/api/v1/b", function() {});
}
module.exports = api;

然后将其用于:

var api = require("./api");
api(app, db);

但是里面定义的路线没有被执行,我该怎么办?

2 个答案:

答案 0 :(得分:2)

尝试:

var api = require("./api");
app.use('/', api)

答案 1 :(得分:2)

好的找到了解决方案:

<强> api.js

module.exports = function (app, db) {
    app.get("/api", function(req, res) { ... });
}

<强> index.js

require("./api")(app, db);

这种方式完美无瑕。