我有一个非常奇怪的问题,即当NODE_ENV=production
时,即使连接到localhost
,Mongoose也不会对模型定义文件之外的集合执行查询。
分贝/ default.js
const mongoose = require('mongoose');
module.exports = {
connect(url) {
mongoose.connect(url);
}
};
app.js
const db = require('./db/default');
db.connect(config.get('mongoDB.uri'));
User.model.js
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
// ...
});
const User = mongoose.model('User', schema);
module.exports = User;
test.js
// This file is required by a route
const User = require('./models/User.model');
User.find({})
.then(response => console.log(response))
.catch(err => console.log(err));
所有这些在NODE_ENV=dev
时都能正常运行,但只要NODE_ENV=production
,User.find({})...
就无法运行。没有错误,没有成功,它只是没有运行。
如果我记录User = require('./models/User.model')
,它是一个Mongoose对象。
如果我在User.find({})...
中运行 User.model.js 文件中的production
代码,那也可以。
我完全不知道为什么这不起作用。