2017-04-06 63 views
0

我是新的节点js,并且长时间堆叠此错误。 有人可以帮助我找到解决方案! 这里是我写的代码!在我收到错误:发送后无法设置标题

if(!error){ 
    console.log(result); 
      } 
    else { 
    res.render('error.ejs'); 
     } 
    }); 


res.redirect('/accounts/list'); 

router.get('/list',function (req, res, next) 
{ 
    res.render('listaccounts.ejs',{mybalance:mybalance}); 
}); 
//accounts creation 
router.post('/', function(req, res, next) { 
var passphrase = req.body.passphrase; 
var mybalance=web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0])); 
var accountAddress=web3_.personal.newAccount("passphrase",function(error,result){ 

    if(!error){ 
    console.log(result); 
      } 
    else { 
    res.render('error.ejs'); 
     } 
    }); 


res.redirect('/accounts/list'); 

    }); 
+0

问题就像它说的那样。您已经发送了标题,现在无法修改它们。在将_any_内容发送到服务器之前,您必须修改标头,因为标头是线路上的第一件事情之一。 –

回答

1

正如Jakub所说。此外你maty有一个异步执行问题(你不知道什么会先执行,重定向或渲染)。我认为你可以简单地:

var accountAddress=web3_.personal.newAccount("passphrase",function(error,result){ 

    if(!error){ 
    console.log(result); 
    res.redirect('/accounts/list'); 
    } 
    else { 
    res.render('error.ejs'); 
    } 
}); 
1

问题奠定了当它捕获else语句,它呈现的页面,然后调用页面重定向,但头res.render期间发送。 简而言之,您无法同时呈现和重定向

相关问题