0

私はMongo DBを見てきましたが、基本を正しく理解するのに苦労しています。

次のコードは 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;
4

1 に答える 1

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();
}
于 2013-03-30T14:22:22.447 に答える