Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firebase nodejs/express的错误处理_Javascript_Node.js_Express - Fatal编程技术网

Javascript firebase nodejs/express的错误处理

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

我在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;

    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。