aim*_*man 1 javascript mongodb node.js
我试图使用Node.js将数据写入MongoDB在写入数据时,我在最后一行收到以下错误.执行日志是:
{ _id: 56e90c1292e69900190954f5,
nfs: [ 'ebdp1', 'ebdp2', 'ebdp3', 'ebdp4' ],
snapShotTime: '2016-03-16 07:32:34' }
{ [MongoError: topology was destroyed] name: 'MongoError', message: 'topology was destroyed' }
Run Code Online (Sandbox Code Playgroud)
我的代码结构是根据框架,其中Collection的架构在appTableProdSchema.js文件中,而Object数据在appTableProdData.js文件中.Main是newMain.js
代码如下:newMain.js
var mongoose = require('mongoose');
var moment = require('moment');
var nfs_check="";
var promises = [];
var nodes = ["ebdp1","ebdp2", "ebdp3", "ebdp4"];
mongoose.connect('mongodb://localhost:27017/test');
var db = mongoose.connection;
var storageData = require('./appTableProdData.js');
var storageDataSchema = require('./appTableProdSchema.js');
var obj = {};
obj.snapShotTime = moment().utc().format("YYYY-MM-DD HH:mm:ss");
obj.nfs = nodes;
db.once('open', function() {
var mongoData = new storageData();
mongoData.fill(obj);
var promise = new storageDataSchema(mongoData.getInformation());
console.log(promise.toString());
promise.save(function (err, promise) {
if (err) return console.error(err);
promise.speak();
});
});
mongoose.disconnect();
Run Code Online (Sandbox Code Playgroud)
appTableProdSchema.js
var mongoose = require('mongoose');
module.exports = mongoose.model('AppTableProd', {
snapShotTime : String,
nfs: Array
});
Run Code Online (Sandbox Code Playgroud)
appTableProdData.js
var storageData = function() {
this.data = {
snapShotTime: null,
nfs: null
};
this.fill = function(resp) {
this.data.snapShotTime = resp.snapShotTime;
this.data.nfs = resp.nfs;
};
this.getInformation = function() {
return this.data;
};
};
module.exports = storageData;
Run Code Online (Sandbox Code Playgroud)
知道为什么我会收到 topology destroyed错误吗?请帮忙.
您的
mongoose.disconnect();
Run Code Online (Sandbox Code Playgroud)
之前被召唤
db.once('open', function() {
var mongoData = new storageData();
mongoData.fill(obj);
var promise = new storageDataSchema(mongoData.getInformation());
console.log(promise.toString());
promise.save(function (err, promise) {
if (err) return console.error(err);
promise.speak();
});
});
Run Code Online (Sandbox Code Playgroud)
此代码块正在执行,因为它是异步调用.
你应该叫这个
mongoose.disconnect();
Run Code Online (Sandbox Code Playgroud)
像这样
db.once('open', function() {
var mongoData = new storageData();
mongoData.fill(obj);
var promise = new storageDataSchema(mongoData.getInformation());
console.log(promise.toString());
promise.save(function (err, promise) {
if (err) return console.error(err);
promise.speak();
mongoose.disconnect();
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |