这是我的模型代码,用于插入一些记录。在我的工作电脑上,它工作得很好,但是当我在家用电脑上使用相同的操作系统运行它时,collection.insert没有运行它的回调,所以我得到的是长时间请求,以超时结束。没有错误,mongo db日志说“连接已接受”5次,之后没有消息。当我尝试使用find()从数据库中获取对象时也会发生同样的情况。使用mongo shell插入记录效果很好,但是使用node.js我无法做到这一点。
/*
* POST populate locations.
*/
var MongoClient = require('mongodb').MongoClient,
_ = require('underscore'),
env = process.env.NODE_ENV || 'development',
config = require('../config/config')[env]
exports.connect = function(cb) {
MongoClient.connect(config.db, function(err, db) {
if (err) throw err;
cb(db)
});
}
exports.populate = function(data, cb) {
var self = this;
self.connect(function(db) {
var collection = db.collection('locations');
collection.insert(data, function(err, docs) {
collection.ensureIndex({
"loc": "2dsphere"
}, function() {
db.close();
cb();
});
});
});
}
答案 0 :(得分:0)
使用
exports.populate = function(data, cb) {
MongoClient.connect(config.db, function(db) {
var collection = db.collection('locations');
collection.insert(data, function(err, docs) {
collection.ensureIndex({
"loc": "2dsphere"
}, function() {
db.close();
cb();
});
});
});
}