我在一个文件中编写了以下代码:
models/exported.js
module.exports = {
processedList: function(store_name) {
var t;
var tradeIds = exported.find({storename: store_name}, function (err, value) {
if (err) return console.error(err);
return value;
}).select('tid -_id');
}, // Export connection here
};
我的路由中有另一个文件
routes/exported.js
var exported = require('../models/exported.js');
var tradeIds = exported.processedList(storename);
console.log('simer'+tradeIds);
}
但我在 console.log 中未定义。如果我写console.log而不是processedlist中的return语句,那么结果将得到控制台。但我的要求是将数据从模型文件返回到路由文件。
我是 Express 和 Node js 新手。
我将非常感谢您的指导。
最佳答案
根据您的问题,您希望从路由调用函数并从函数获取返回响应到路由。简单使用回调函数。
models/exported.js
module.exports = {
processedList: function (store_name, callback) {
var t;
var tradeIds = exported.find({storename: store_name}, function (err, value) {
if (err) {
callback("error", err)
} else {
callback("success", value)
}
}).select('tid -_id');
}
}
routes/exported.js
var exported = require('../models/exported.js');
exported.processedList('storename', function (err, results) {
if (err == 'error') {
console.log(err);
} else {
console.log(results);
}
});
关于node.js - 无法从express Node js中的模块返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42083344/