node.js mongoose未在保存时重新发送
我正在创建一个注册用户,但当它保存时,mongoose没有响应,我的意思是,它没有做任何我要求它做的事情,它只是不做任何事情,它确实在保存,但它没有进行我要求它做的渲染,下面是我的代码:node.js mongoose未在保存时重新发送,node.js,mongodb,Node.js,Mongodb,我正在创建一个注册用户,但当它保存时,mongoose没有响应,我的意思是,它没有做任何我要求它做的事情,它只是不做任何事情,它确实在保存,但它没有进行我要求它做的渲染,下面是我的代码: var userSchema = mongoose.Schema( { username: String, password: String }); //User model. var UserModel = mongoose.model('User', userSchema); app.p
var userSchema = mongoose.Schema(
{
username: String,
password: String
});
//User model.
var UserModel = mongoose.model('User', userSchema);
app.post('/register', function(request, response)
{
console.log('REGISTER OK');
//set connection to mongodb.
mongoose.connect('mongodb://localhost');
var db = mongoose.connection;
//Connect to mongodb.
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback()
{
console.log('connection succeed.');
UserModel.findOne({username: request.body.username}, function(error, data)
{
if(error)
console.log(error);
if(data)
{
response.render('register',
{
'Title': Title,
'result': 'user found'
});
mongoose.connection.close();
}
else
{
var user = new UserModel(
{
username: request.body.username,
password: request.body.password
});
user.save(function(error, data)
{
if(error)
console.log(error);
console.log('saved');
});
mongoose.connection.close();
}
});
});
});
现在我已经删除了渲染代码,只是将其记录为“已保存”,而不是记录,现在只是将其保存到mongodb中。我打赌,在服务器能够响应您正在进行的保存之前,您正在关闭连接,因此,
.save
的回调永远不会被调用。若要检查是否是这种情况,请将连接。关闭调用放在保存回调中。@guessimtoolate好吧,我做了您所做的,但它给了我一个mongo错误,告诉我连接正在关闭,我再次将其放回,但这次我正在进行渲染,它工作正常,不知道如何。。。