Javascript TypeError:无法读取属性';BSON&x27;未定义的

Javascript TypeError:无法读取属性';BSON&x27;未定义的,javascript,node.js,mongoose,bson,Javascript,Node.js,Mongoose,Bson,我正在使用PM2部署一个nodeJS应用程序,该过程启动正常,但是,当我尝试访问URL时,它会停止该过程,然后给我一个“错误”状态。检查日志,我得到以下信息: TypeError: Cannot read property 'BSON' of undefined MyExpenses-0 (err): at Object.<anonymous>(/home/develop/development/nodejs/expenses/node_modules/mongodb/lib

我正在使用PM2部署一个nodeJS应用程序,该过程启动正常,但是,当我尝试访问URL时,它会停止该过程,然后给我一个“错误”状态。检查日志,我得到以下信息:

TypeError: Cannot read property 'BSON' of undefined
MyExpenses-0 (err):     at Object.<anonymous>(/home/develop/development/nodejs/expenses/node_modules/mongodb/lib/mongodb/index.js:46:40)
MyExpenses-0 (err):     at Module._compile (module.js:435:26)
MyExpenses-0 (err):     at Object.Module._extensions..js (module.js:442:10)
MyExpenses-0 (err):     at Module.load (module.js:356:32)
MyExpenses-0 (err):     at Function.Module._load (module.js:311:12)
MyExpenses-0 (err):     at Function._load (/usr/local/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21)
MyExpenses-0 (err):     at Module.require (module.js:366:17)
MyExpenses-0 (err):     at require (module.js:385:17)
MyExpenses-0 (err):     at Object.<anonymous> (/home/develop/development/nodejs/expenses/node_modules/mongoose/lib/utils.js:5:16)
MyExpenses-0 (err):     at Module._compile (module.js:435:26)
我唯一的API url是:

app.post('/api/expenses/create/', function (req, res) {
    var name = req.body.name;
    var amount = req.body.amount;
    var userId = req.body.userId;
    User.findOne({'_id': userId}, function (err, user) {
        if (!err) {
            var newExpense = Expense({
                name: name,
                amount: amount,
                user_id: userId
            });
            newExpense.save(function (expenseErr) {
                if (!expenseErr) {
                    res.status(200).json({'message': 'Gasto creado correctamente.', expense: newExpense});
                } else {
                    res.status(400).json({'message': expenseErr});
                }
            });
        } else {
            res.status(400).json({'message': 'El usuario seleccionado no existe.'});
        }
    });
});

请添加崩溃的控制器的代码,我认为您使用的是嵌套文档,因此您可以为该URL添加模式代码和相应的js代码。我刚刚添加了部分代码,希望对您有所帮助。
app.post('/api/expenses/create/', function (req, res) {
    var name = req.body.name;
    var amount = req.body.amount;
    var userId = req.body.userId;
    User.findOne({'_id': userId}, function (err, user) {
        if (!err) {
            var newExpense = Expense({
                name: name,
                amount: amount,
                user_id: userId
            });
            newExpense.save(function (expenseErr) {
                if (!expenseErr) {
                    res.status(200).json({'message': 'Gasto creado correctamente.', expense: newExpense});
                } else {
                    res.status(400).json({'message': expenseErr});
                }
            });
        } else {
            res.status(400).json({'message': 'El usuario seleccionado no existe.'});
        }
    });
});