mongolab.comでホストされているMongoDBにテキストの配列の配列を保存するこのnode.jsコードがあります。私はMongoose ORMを使用し、コードがデータベースに接続するが、保存メソッドは実行されないことに注意してください。mongooseが私のモデルを保存しない理由
function save2Db(texts) {
var db = require('mongoose');
db.Promise = global.Promise;
db.connect('mongodb://user:[email protected]:13456/heroku_xxxxxxx');
db.connection.on('error', console.error.bind(console, 'connection error!'));
db.connection.on('close', console.error.bind(console, 'closed db!'));
db.connection.once('open', function() {
console.log('opened db!');
/* Create schema */
var textSchema = new db.Schema({
date: { type: Date, default: Date.now },
text: [String]
});
/* Create model */
var TextModel = db.model('Text', textSchema, 'testCollection');
/* Save data to database */
texts.forEach(function(content) {
console.log(`saving ${content}`);
var t = new TextModel({text : content});
t.save(function (err) {
console.log('inside t.save');
if (err) {
console.error(err);
} else {
console.log('Saved to db');
}
}); //t.save
}); // texts.forEach
db.connection.close();
});
}
save2Db([['a','b'],['c'],['d','e','f','g']])
し、Saveメソッドが動作しない理由を
opened db!
saving a,b
saving c
saving d,e,f,g
closed db!
は、あなたが知っていた出力を得ますか?ありがとうございました。
ありがとうございます。あなたが言うまで、保存は非同期であることに気付かなかった。 – cody