【发布时间】:2017-01-04 21:10:02
【问题描述】:
我有这个 node.js 代码,它将一组文本数组保存到托管在 mongolab.com 的 MongoDB 中。我使用 Mongoose ORM 并注意到代码连接到数据库但没有执行保存方法。
function save2Db(texts) {
var db = require('mongoose');
db.Promise = global.Promise;
db.connect('mongodb://user:pswd@ds013456.mlab.com: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']])
得到输出
opened db!
saving a,b
saving c
saving d,e,f,g
closed db!
你知道为什么保存方法不起作用吗?谢谢。
【问题讨论】:
标签: node.js mongodb heroku mongoose