Javascript firebase nodejs/express的错误处理
我在index.js中有以下内容:Javascript firebase nodejs/express的错误处理,javascript,node.js,express,Javascript,Node.js,Express,我在index.js中有以下内容: router.post('/signup', function(err, req, res, next){ var username = req.body.username; var fname = req.body.fname; var lname = req.body.lname; var email = req.body.email; var password = req.body.password; d
router.post('/signup', function(err, req, res, next){
var username = req.body.username;
var fname = req.body.fname;
var lname = req.body.lname;
var email = req.body.email;
var password = req.body.password;
database.createUserWithEmailAndPassword(email, password, username, fname, lname);
//This is causing redirect to 404 page. Want to just stay here.
if (err){
alert('Email has already been registered');
} else {
res.redirect('/');
}
});
我还有另一个模块,我正在使用firebase进行用户身份验证
database.js
exports.createUserWithEmailAndPassword = function(email, password, username, fname, lname){
if (!email || !password || !username || !fname || !lname){
console.log ('email: ' + email);
console.log ('password: ' + password);
console.log ('username: ' + username);
console.log ('fname: ' + fname);
console.log ('lname: ' + lname);
throw Error('You are missing information');
}
firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user){
firebase.database().ref('users/' + username).set({
email: email,
fname : fname,
lname : lname
});
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
console.log('ERROR CODE: ' + errorCode);
var errorMessage = error.message;
console.log('ERROR MESSAGE' + errorMessage);
throw Error('Unable to save user.')
});
};
用户身份验证有效。我的问题更多的是关于错误处理。现在,在index.js中,当我遇到错误时,应用程序会转到404未找到页面。理想情况下,我只想停留在同一页上,在视图的某个地方显示错误消息
为了防止重定向到404页面,我应该采取哪些不同的措施?我认为这与基于express文档的函数中传递的错误有关 该代码段实际上并没有重定向到404。。。您可能正在查找
res.status(404)
或res.redirect('/your404page.html')
或类似的内容。当然,在我的app.js中,我有一些代码,在发生错误时可以重定向到我自己的自定义404错误页面。我想知道的是处理错误的正确方法,这样我就不会去那个页面了。如果出现错误,我会留在注册页面上。可能是database.js中的抛出错误()
导致了这种情况发生?您是否真的遇到了错误?或者它只是试图重定向到/
,然后给你一个404。