Javascript Html表单未在post请求中发送数据

Javascript Html表单未在post请求中发送数据,javascript,html,node.js,Javascript,Html,Node.js,我正在尝试使用JWT实现密码重置。我正在向用户发送一封密码重置电子邮件,其ID和JWT在params中。当用户单击此链接时,它会将用户重定向到密码输入页面。此页面由以下函数呈现: router.get('/resetPassword/:id/:token', function(req, res) { if (req.params.token ==null || req.params.id == null) return res.send('Invalid reset pass

我正在尝试使用JWT实现密码重置。我正在向用户发送一封密码重置电子邮件,其ID和JWT在params中。当用户单击此链接时,它会将用户重定向到密码输入页面。此页面由以下函数呈现:

router.get('/resetPassword/:id/:token', function(req, res) {
  if (req.params.token ==null || req.params.id == null) return res.send('Invalid reset 
       password link');
  Organization.findById({_id: req.params.id}, function(err, org) {
       if (err) return res.send(err);
       if (!org) return res.status(HttpStatus.FORBIDDEN).send('No user associated with this 
                reset password link');
  org.decodePasswordResetToken(req.params.token, function(err, decoded) {
  if (err) return res.status(HttpStatus.INTERNAL_SERVER_ERROR).send(err);
  console.log(`${req.params.id} ${req.params.token}`);
  return res.send('<form action="/api/o/resetpassword" method="POST">' +
       '<input type="hidden" id="id" name="id" value="' + req.params.id + '" />' +
       '<input type="hidden" name="token" value="' + req.params.token + '" />' +
       '<input type="password" name="password" value="" placeholder="Enter your new 
                password..." />' +
       '<input type="submit" value="Reset Password" />' +
    '</form>');
    });
  });
});

我是HTML和JS的初学者。如果这是一个愚蠢的错误,我很抱歉D

对于表单数据,您还需要使用:app.use(bodyParser.urlencoded({extended:true}))然后您将在req.body中获得post数据。对于表单数据,您还需要使用:app.use(bodyParser.urlencoded({extended:true}))然后您将在req.body中获得post数据

您有body解析器设置吗?express不填充req.body本身,请使用
app.use(bodyParser.json())
检查节点模块body parserI am。还有什么我需要设置的吗?默认情况下,http表单在正文中发送url编码的数据
aaa=1&bbb=2
use必须指定特殊的多部分,JSON在http标准中不存在,它仅由ajax请求使用。是否有正文解析器设置?express不填充req.body本身,请使用
app.use(bodyParser.json())
检查节点模块body parserI am。还有什么我需要设置的吗?默认情况下,http表单在正文中发送url编码的数据
aaa=1&bbb=2
use必须特别指定多部分,JSON在http标准中不是,它仅由ajax请求使用
router.post('/resetpassword', function(req, res) {
    const {id, token, password} = req.body;
    Organization.findById({_id: id}, function(err, org) {
      if (err) return res.send(err);
      if (!org) return res.status(HttpStatus.FORBIDDEN).send('No user associated with this 
        reset password link');
      org.decodePasswordResetToken(token, function(err, decoded) {
        if (err) return res.status(HttpStatus.INTERNAL_SERVER_ERROR).send(err);
        // set password for this user
        org.password = password;
        org.save(function(err, org) {
          if (err) return res.send(err);
          res.send('Your password has been successfully changed.');
        });
      });
   });
 });