为了使 mongoose 设置更容易,我在 /lib 目录中创建了一个 mongoose.js 文件。它设置了 mongoose,因此消耗模块可以准备好连接等。问题是,当尝试访问 product.js 上的mongoose.Schema方法时,它会抛出未定义的方法。在为我自己的对象做类似的练习时,这不会发生。这是有问题的代码。
/lib/mongoose.js(lib文件)
var mongoose = require('mongoose');
mongoose.connect(process.env.PPC_API_MONGODB_URL);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log('db open');
});
exports = mongoose;
/models/product.js (消费文件)
var mongoose = require('../lib/mongoose.js');
var productSchema = mongoose.Schema({ // results in method undefined here
name: String
});
exports = mongoose.model('Product', productSchema);
如果我在 /lib/mongoose.js 中执行以下操作,我可以让它工作
exports.mongoose = mongoose;
然后在 /models/product.js
var mongoose = require('mongoose').mongoose;
但这并不干净,我根本不明白为什么第一个选项不起作用。
如果您可以向我展示我做错了什么或解释为什么第一种方法不起作用,那将被视为我赞成的已核对答案。