Debugging Node.js Express mongoose查询查找

Debugging Node.js Express mongoose查询查找,debugging,node.js,express,mongoose,Debugging,Node.js,Express,Mongoose,我对使用Node.js的Express和mongoose有点问题。我将代码粘贴到pastebin中,以获得更好的可见性 以下是app.js: 以下是routes/index.js: 由于db.js不大,我将其发布在这里: var mongoose = require('mongoose'), Schema = mongoose.Schema; module.exports = function () { mongoose.connect('mongodb://localhost/tes

我对使用Node.js的Express和mongoose有点问题。我将代码粘贴到pastebin中,以获得更好的可见性

以下是app.js: 以下是routes/index.js:

由于db.js不大,我将其发布在这里:

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

module.exports = function () {
    mongoose.connect('mongodb://localhost/test',
    function(err) {
        if (err) { throw err; }
    }
  );
};

var User = new Schema({
    username: {type: String, index: { unique: true }},
    mdp: String    
});

module.exports = mongoose.model('User', User);
如您所见,我使用console.log调试我的应用程序,发现在routes/index.js中,只有a出现。这很奇怪,就好像脚本在

他被审判了


有什么想法吗?

很快就会有两件事

  • 确保你使用的是最新的猫鼬(2.5.3)。更新package.json并运行npm更新
  • 在执行
    if(err)
    之前,尝试执行
    console.log(augments)
    。有可能发生了错误
  • 你确定你真的在连接数据库吗?尝试在文件顶部显式连接(仅用于测试)
    mongoose.connect('mongodb://localhost/my_database');

  • 如果我有任何其他想法,我会更新。

    您从未连接到数据库。您的connect方法位于db.export中,但它从未作为函数从您的应用程序中调用

    此外,您正在覆盖module.exports-如果希望导出多个函数/类,则必须将它们添加为module.export对象的不同属性。即:

    module.export.truthy = function() { return true; }
    module.export.falsy = function() { return false; }
    

    然后,当
    需要该模块时,必须调用函数(
    trueFalse.truthy();
    )以获取值。由于您从未执行连接到数据库的功能,因此不会收到任何数据。

    谢谢,这对我帮助很大。我想我没有真正的联系。我认为module.exports单独自动执行该功能。但我错了。module.exports是否等同于exports?是的module.exports与exports相同谢谢你,你所说的对我帮助很大。如果您想了解详细信息,请查看我对另一条消息的评论:D
    module.export.truthy = function() { return true; }
    module.export.falsy = function() { return false; }