在node.js应用程序中,尝试从同一文件( index.js )中的另一个函数中引用一个函数会导致错误, ReferenceError:未定义familyLookup < /强>
目的是让第二个功能计划,调用 familyLookup 。我该如何解决这个问题?
index.js
exports.familyLookup = function(oid, callback){
var collection = db.get('usercollection');
collection.findOne(
{ _id : oid },
{ address: 1, phone: 1 },
function(e, doc){
console.log(doc);
}
)
}
exports.schedule = function(db, callback){
return function(req, res) {
var lookup = familyLookup();
var schedule_collection = db.get('schedule');
var today = new Date();
var y = [];
schedule_collection.find({ date : {$gte: today}},{ sort: 'date' },function(err, docs){
for ( var x in docs ) {
var record = docs[x];
var oid = record.usercollection_id;
result = lookup(db,oid)
record.push(lookup(oid));
y.push(record);
}
res.render('schedule', {
'schedule' : y,
});
});
};
};
答案 0 :(得分:2)
关键信息是 ReferenceError:未定义familyLookup 。在您的代码之外,您刚刚定义了如何通过exports.familyLookup
使用 out 来 index.js 。换句话说,可以通过以下方式在其他文件中使用 familyLookup :
// in foo.js
var index = require('index');
index.familyLookup(fooDB, function(){/* */});
您应该在同一个文件中定义函数familyLookup()
,然后定义如何在index.js
中使用它:
// define function so that it can be used within the same file
var familyLookup = function(db, callback) {/*...*/}
// this line only defines how to use it out of `index.js`
exports.familyLookup = familyLookup;