我正在使用MongoDB创建一个api,我正在使用Mongoose来创建数据持久性。但是我收到一个没有定义Mongoose的错误,我使用了require函数来调用节点模块但它仍然给我同样的错误。
以下是连接文件
var mongoose = require('mongoose')
var database = 'api'
const server = 'mongodb://localhost:27017/'+database
console.log(server)
mongoose.connect(server)
const db = mongoose.connection
console.log(db)
var Schema = mongoose.Schema
var ObjectId = Schema.ObjectId
const WeatherSchema = new Schema({
id: {type: String, required: true},
name: { type: String, required: true },
items: {type: String, required: true}
})
var WeatherDB = mongoose.model('DBlist', WeatherSchema)
答案 0 :(得分:2)
您应该等待数据库连接,因为它不会立即发生。像这样:
var mongoose = require('mongoose');
mongoose.connect(sever);
var db = mongoose.connection;
db.on('disconnect', connect); // auto reconnecting
db.on('error', function(err) {
debug('connection error:', err);
});
db.once('open', function (callback) {
// we're in the game, start using your Schema
const WeatherSchema = new Schema({...
});
P.S。 我添加了一些额外的糖只是为了让你知道这些事件的存在,并且非常有助于了解正在发生的事情。