我有一个从 mongodb 返回一些 JSON 的 API:
// In router.js
var api = require('api')
app.get('/lists', api.lists);
// In api.js
var db = require('db')
exports.lists = function(req, res) {
db.lists.find({}, function(err, lists) {
res.send(lists);
});
};
有没有办法设计 API,以便我也可以在我的 Node.js 应用程序中使用它?我试图避免在 API 之外复制任何数据库代码。我基本上有一个可以在服务器端呈现数据的控制器:
// In controller.js
var api = require('api')
exports.page = function(req, res) {
res.send(api.lists()); // This won't work
};
我找到了一个 hacky 解决方案,它是将回调函数传递给 api.lists(),但我觉得这是实现此目的的“错误”方法:
// In api.js
exports.lists = function(req, res, callback) {
db.lists.find({}, function(err, lists) {
if(callback){
callback(lists);
} else {
res.send(lists);
}
});
};
有任何想法吗?