分离mongo查询的节点
node separating out mongo queries
我正在考虑将我的mongo-db查询分离到一个单独的js文件中,以帮助重用代码,格式如下(这不起作用)。你知道我该怎么做吗?
queries.js
var Merchants = require('../models/Merchants');
var query = {
returnMerchantIDs: function () {
var results = Merchants.find(function(err, merchants){
if (err) return console.error(err);
return merchants;
})
return results;
}
module.exports = query;
routes.js
var queries = require('../config/queries');
app.get('/queries', function (req, res) {
res.send(queries.returnMerchantIDs());
});
您的"退货商家"实际上是从回调返回的,而不是从returnMerchantID函数返回的。这就是为什么这不起作用。有两种方法可以做到这一点。
让returnMerchantID接受类似的回调
var query = {
returnMerchantIDs: function (callback) {
var results = Merchants.find(function(err, merchants){
if (err) return console.error(err);
callback(merchants);
})
return results;
}
这就是你所说的
app.get('/queries', function (req, res) {
queries.returnMerchantIDs(function(merchants) {
res.send(merchants);
}));
});
或者通过回调将mongoose的promise返回给调用者和exec
var query = {
returnMerchantIDs: function () {
var results = Merchants.find();
return results;
}
}
app.get('/queries', function (req, res) {
queries.returnMerchantIDs().exec(function(err, merchants)) {
if (err) res.send(err) else res.send(merchants);
}
相关文章:
- 如何处理node.js节点mongodb中的连接和查询队列
- 更新从Mysql查询检索到的数据?Node.js节点mysql
- 是否有一种基于“查询”来查询Neo4j中的节点的方法;dateProperty”;
- 模型对象构造函数中的节点mysql查询
- 在节点快速站点中保留 Stormpath 身份验证和授权后的查询字符串
- 不包含块引用的节点的查询选择器
- 管理异步性并在节点中执行多个 MySQL 查询
- 执行节点.JS基于HTML选择选项的查询
- 节点.js MYSQL,在前一个查询完成后按顺序运行每个查询
- 在查询字符串 - 节点.js中发布嵌套对象
- 节点.js mysql 查询的解析错误
- 节点-Postgres 查询方法不调用其回调函数
- 通过猫鼬和节点_id进行简单查询.js不起作用
- 节点.js mysql 查询和网络连接
- 节点.js MySQL 查询执行流程
- 在节点中使用变量.js mysql-node 查询
- 节点.js查询和清晰的理解
- 与沙发库视图匹配的节点 js couchbase 查询调用
- 使用另一个节点查询JSON节点值's值
- 节点查询字符串解析和字符编码