我一直在关注Mongo数据库,并且正在努力获得正确的基础知识。
以下代码似乎可以在Mac上运行,但在Windows上不起作用。我在Windows上没有错误。如果我将用户名/密码更改为错误的组合,我会收到错误消息。当代码没有问题但根本没有在数据库中创建集合时,它根本不提供任何输出,而我希望有一个名为things
。
我在.\node_modules\mongoose\examples
中的示例中运行了代码并且运行正常。我还尝试将代码放在thing\index.js
data.js
内,以防万一模块导致问题,但行为没有变化。我做错了什么?
这是我的示例代码:
data.js
var loremIpsum = require('lorem-ipsum'),
mongoose = require('mongoose'),
Thing = require('./thing');
mongoose.connect('mongodb://username:password@localhost/Test', function (err) {
if (err) {
throw err;
}
createData();
})
function createData() {
Thing.model.create({
id: 1,
name: loremIpsum({
count: 5,
units: 'words',
format: 'plain'
}),
description: loremIpsum({
count: 100,
units: 'words',
format: 'plain'
})
}, function (err, thing) {
if (err) {
throw err;
}
console.log(thing.name);
});
mongoose.disconnect();
}
事/ index.js
var mongoose = require('mongoose');
var thingSchema = mongoose.Schema({
id: {
type: Number,
min: 1
},
date: {
type: Date,
default: Date.now
},
name: {
type: String,
trim: true
},
description: {
type: String,
trim: true
}
});
var thingModel = mongoose.model('Thing', thingSchema);
exports.schema = thingSchema;
exports.model = thingModel;
答案 0 :(得分:0)
小学生错误!我要离开这里寻找其他新手了!
基本上,我的代码在创建有机会完成之前断开连接。这就是回调永远不会被调用的原因。 *facepalm*
<强> data.js 强>
var loremIpsum = require('lorem-ipsum'),
mongoose = require('mongoose'),
Thing = require('./thing');
mongoose.connect('mongodb://username:password@localhost/Test', function (err) {
if (err) {
throw err;
}
createData();
})
function createData() {
Thing.model.create({
id: 1,
name: loremIpsum({
count: 5,
units: 'words',
format: 'plain'
}),
description: loremIpsum({
count: 100,
units: 'words',
format: 'plain'
})
}, function (err, thing) {
if (err) {
throw err;
}
console.log(thing.name);
// this goes here...
mongoose.disconnect();
});
// this does not go here...
// mongoose.disconnect();
}