Javascript + ExpressJS - 返回[something]或返回(没有)?

时间:2016-07-14 10:18:02

标签: javascript node.js express mongoose return

返回什么和什么都不返回有什么区别?

举个例子:

user.save(function(err){
  if ( err && err.code !== 11000 ) {
    console.log(err);
    console.log(err.code);
    res.send('Another error showed up');
    return;
  }

  //duplicate key
  if ( err && err.code === 11000 ) {
    req.flash('error', 'User already exists');
    res.redirect('/signup');
    return;
  }

  res.locals.user = user;
  req.session.user = user;
  //res.locals.session = req.session;
  res.redirect('/');
});

如果我return res;或只是return(没有),它似乎没有任何区别:

  //duplicate key
  if ( err && err.code === 11000 ) {
    req.flash('error', 'User already exists');
    res.redirect('/signup');
    return res;
  }

我很难理解没有 returning任何事情。

那么为什么以及我们仅使用return本身的原因是什么?

对于像我这样的情况,我们为什么不return res;

1 个答案:

答案 0 :(得分:1)

你不需要在这里归还任何东西。制作res.redirect('/')只会将您重定向到适当的回调

此函数是回调函数,无需返回任何内容。 您返回的任何内容都不会对功能产生任何影响