我是节点js的新手,我长时间堆叠这个错误。 有人可以帮我找到解决方案! 这是我写的代码!
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 :(得分:1)
问题在于
if(!error){
console.log(result);
}
else {
res.render('error.ejs');
}
});
res.redirect('/accounts/list');
当它捕获else语句时,它会渲染页面,然后你调用页面重定向,但是在res.render期间发送了标题。 简而言之,您无法同时渲染和重定向
答案 1 :(得分:1)
正如雅库布所说。你也可能有一个异步执行问题(你不知道将首先执行什么,重定向或渲染)。我想你可以简单地说:
var accountAddress=web3_.personal.newAccount("passphrase",function(error,result){
if(!error){
console.log(result);
res.redirect('/accounts/list');
}
else {
res.render('error.ejs');
}
});