0

我一直在研究 Mongo DB,并且正在努力获得正确的基础知识。

以下代码似乎适用于 Mac,但不适用于 Windows。我在 Windows 上没有错误。如果我将用户名/密码更改为不正确的组合,我会收到错误消息。当代码没有问题但根本没有在数据库中创建集合时,它根本不会提供任何输出,而我希望有一个名为things.

我从示例中运行代码,.\node_modules\mongoose\examples它运行良好。我还尝试将代码放入其中thing\index.jsdata.js以防万一制作模块导致问题但行为没有改变。我究竟做错了什么?

这是我的示例代码:

数据.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;
4

1 回答 1

0

小学生错误!我把这个留在这里让其他菜鸟找到!

本质上,我的代码在创建有机会完成之前就断开了连接。这就是为什么从未调用回调的原因。*facepalm*

数据.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();
}
于 2013-03-30T14:22:22.447 回答