Javascript nodejs mongoose在保存条目后不会返回控制台
我使用控制台中的一小段代码来测试MongoDB数据库中的保存/检索条目。看起来是这样的:Javascript nodejs mongoose在保存条目后不会返回控制台,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我使用控制台中的一小段代码来测试MongoDB数据库中的保存/检索条目。看起来是这样的: var mongoose = require('mongoose'); var models = require('../models'); mongoose.connect('localhost', 'users'); var john = new models.User({ name:'John' }); john.save(function (err, john) { if (err) {
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
});
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
mongoose.disconnect();
});
在我运行它之后,它会在保存条目时显示名称,然后不会将我返回控制台,也不会显示更多消息。如何让它将我返回控制台?当保存调用完成后,它会将您返回控制台,但那是在调用回调之前。 如果保存操作需要几分钟,您可以同时继续玩控制台 保存操作完成后,将调用回调函数并将john.name打印到控制台。在REPL中打印到控制台可能有点棘手,因为它是在您正在键入的位置写入的
所以我的猜测是,您认为一切都被阻止了,因为您没有看到提示符>,但事实上它就在那里,它只是那一行上写的console.log。如果您尝试其他命令,它应该仍然可以工作。一旦完成对save的调用,它会将您返回到控制台,但那是在调用回调之前。 如果保存操作需要几分钟,您可以同时继续玩控制台 保存操作完成后,将调用回调函数并将john.name打印到控制台。在REPL中打印到控制台可能有点棘手,因为它是在您正在键入的位置写入的
所以我的猜测是,您认为一切都被阻止了,因为您没有看到提示符>,但事实上它就在那里,它只是那一行上写的console.log。如果您尝试其他命令,它应该仍然可以工作。只要数据库连接仍然打开,您的node.js程序就不会退出,因此您需要在完成连接池后关闭连接池,如下所示:
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
});
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
mongoose.disconnect();
});
只要数据库连接仍处于打开状态,node.js程序就不会退出,因此在完成连接池后,您需要关闭连接池,如下所示:
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
});
var mongoose = require('mongoose');
var models = require('../models');
mongoose.connect('localhost', 'users');
var john = new models.User({ name:'John' });
john.save(function (err, john) {
if (err) {
console.log(err)
}
else {
console.log(john.name);
}
mongoose.disconnect();
});
它应该返回哪些其他消息?它不应该在所有操作结束时自动将我返回控制台吗?它应该返回哪些其他消息?它不应该在所有操作结束时自动将我返回控制台吗?