有很多方法可以做到。这里有一些想法。
是的,您需要设置某种路由/处理程序,以便不同的模块能够调用不同的服务和/或解耦。
下面是一个相当标准的 node.js / express 结构:
├── server.js
├── config
│ ├── development
│ ├── production
│ └── staging
├── handlers
│ ├── customers.js
│ └── stores.js
├── node_modules
│ ├── assert
│ ├── ejs
│ ├── express
│ ├── forever
│ ├── mongodb
│ └── mongoskin
├── package.json
├── README.md
然后在 server.js 中,您可以像这样导入处理程序:
// import route handlers
var customers = require('./handlers/customers'),
stores = require('./handlers/stores');
然后在您的处理程序中,您将能够声明函数:
exports.addCustomer = function(req, res) {
// ....
};
在 server.js 中可以用于路由:
app.post('/customers/add/:id, metrics.addCustomer);
那么你就有了一个基本的框架。exports.XXX
只需在处理程序文件中的函数之外定义数据库连接就可以了,因为这些函数将具有访问权限,但没有任何内容,server.js
因此您不会污染您的命名空间。
var url = config.user +":"
+ config.pass +"@"
+ config.host +"/"
+ config.database;
var mongo = require('mongoskin').db(url);
您可以在其中config
从 JSON 文件加载对象。
希望有帮助。