javascript - 在 Node.js 中,从同一文件中的另一个函数引用一个函数会导致 'ReferenceError: -function- is not defined' 错误

标签 javascript node.js mongodb

在 node.js 应用程序中,尝试从同一文件 (index.js) 中的另一个函数引用一个函数会导致错误,ReferenceError: familyLookup is not defined.

目的是让第二个函数schedule调用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,
            });
        });
    };
};   

最佳答案

关键信息是ReferenceError: familyLookup is not defined。在您的代码之外,您刚刚定义了如何通过 exports.familyLookup 在您的 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;

关于javascript - 在 Node.js 中,从同一文件中的另一个函数引用一个函数会导致 'ReferenceError: -function- is not defined' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319181/

相关文章:

javascript - emberjs 强制 .find() 在服务器上搜索新数据

javascript - Node.js 需要问题

node.js - windows 下Satellizer安装错误

node.js - Mongoose 模式 : how to set max number of items in an array?

文档中具有大数组的 mongodb 性能

javascript - 计算机在浏览器中运行此 javascript 代码时挂起

javascript - 如何在 jwplayer 中更改播放速率

javascript - 如何使用 express router 正确调用 passport.js 函数?

javascript - 如何使用单个批处理文件或 javascript 导入或导出多个 mongo 集合

Javascript 确认对话框 - ASP.NET