Express.js res.render不redirect,只显示在控制台中

这次我想用res.render来显示html作为数据库更新的成功。 我做了好几次,但这次不起作用。 它不是呈现HTML文件,只是显示在Chrome的控制台上。

我认为这是由于asynchronous问题或重复响应造成的。 我尝试了很多方法,但我无法解决,所以指针赞赏。

代码与用户付费服务有关,增加用户级别。

获取访问令牌=>validation=> res.render

 app.post('/payment/validate', function(req, res, next){ // Get access token request.post({ url : 'https://payment-company/get/token' }, function(err, response, body) { if(!err & response.statusCode == 200) { var result = JSON.parse(body); var accessToken = result.response.access_token; // Validate payment (compare paid and would be paid) request.get({ headers : { 'Authorization' : accessToken } url : 'https://payment-company/find/paymentid' }, function (err, response, body) { if (!err && response.statusCode == 200){ var result = JSON.parse(body); if (result.response.amount == req.body.price){ Members.findOne({id : req.user.id}, function(err, member){ // If no problem, update user level member.level = 2; member.save(function(err, result){ if (err) return next(); res.render('payment.view.result.ejs', { title : 'Success !', description : 'level up.' }); }); }); } } else { ... } }); } }) }); 

对不起,详细代码我试图缩短代码,没有问题,直到res.render,res.render将工作,但它不是显示页面,而只是发送HTML代码到Chrome的控制台。

看起来似乎对这些请求的工作有一些误解。 我想你打算:

  1. 浏览器发出一个GET请求,服务器响应一个HTML文档,浏览器呈现它
  2. 用户采取行动
  3. 浏览器发出一个POST请求,服务器响应一个HTML文件,浏览器呈现它

你在前端开始编码是另一种方法:

  1. 你通过AJAX发出一个POST请求,服务器响应一些JSON,你用JavaScript修改当前文档让用户知道