当前位置: 首页 > 知识库问答 >
问题:

Req.Body.Email未定义

云京
2023-03-14

null

下面是我的代码摘要:


var express = require('express');
var router = express.Router({ mergeParams: true });
var Kids = require('../models/kid');
var User = require('../models/user');
var async = require('async');
var nodemailer = require('nodemailer');
var crypto = require('crypto');
var middleware = require('../middleware');

router.post('/password_reset', function(req, res, next) {
 function(token, done) {
      User.findOne({ email: req.body.email }, function(err, user) {
          console.log(req.body.email);  <====== Returning and undefined
          console.log(user); <====== Returning as null
        if (!user) {
          req.flash('error', 'No account with that email address exists.');
          return res.redirect('/password_reset');
        }

        user.resetPasswordToken = token;
        user.resetPasswordExpires = Date.now() + 3600000; // 1 hour

        user.save(function(err) {
          done(err, token, user);
        });
      });
    }
});

和我的表格

<form action="/password_reset" method="POST" >
  <div class="form-group">
    <label for="exampleInputEmail1">Enter your email address</label>
    <input type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="Enter email" required>
    
  </div>
  <button type="submit" class="btn btn-warning">Submit</button>
</form>

共有1个答案

能帅
2023-03-14

您有两个问题:

您的 /code>没有 属性,因此它不是成功的控件。

如果您希望 中包含数据,那么您需要说

与此相关的是,您说的是 /code>,但说的是 属性需要与它标记的元素的 匹配。那么 需要匹配标记当前元素的元素的ID……而当您有真正的 /code>时,就不需要了。

请参阅 的文档:

包含在请求正文中提交的数据的键值对。默认情况下,它是未定义的,当您使用主体解析中间件(如express.json()或express.urlencoded())时,它将被填充。

您还没有使用任何体解析中间件。

null

router.use(express.urlencoded())
 类似资料:
  • 问题内容: 注意:根据 ECMAScript5.1,第15.1.1.3节,window.undefined是只读的。 现代浏览器正确地实现了这一点。 例如:Safari 5.1,Firefox 7,Chrome 20等。 Undefined仍可在以下位置更改:Chrome 14,… 原来,问题的原因是 如果“对象”中没有属性“ x”,则返回false。 我通过在两个Facebook函数中用规则相等

  • 问题内容: 我正在使用PHP版本5.3并尝试在我的代码中使用,但是出现错误: 我仍然可以连接到数据库。为什么不可用? 我正在使用PHP版本5.3。 问题答案: 更新 中提到的评论,一直以来5.5弃用: 自PHP 5.5起不推荐使用mysql扩展。应该改用mysqli或PDO扩展名。否决已在mysql_deprecation中确定,可以在此找到对该决定背后原因的讨论。 并 在PHP 7中删除 。 是

  • 问题内容: 我有一个简单的jquery click事件 以及在site.master中定义的jquery引用 我检查了脚本是否已正确解析,可以在Firebug中查看标记并直接查看脚本,因此必须找到我。但是,我仍然得到: $未定义 而且没有一个jQuery的作品。我还尝试了$(document).ready和jQuery等的各种变体。 这是.net 3.5上的MVC 2应用程序,我确定我真的很密集,

  • 问题内容: 我收到此错误消息, 这是我的标题。 以下是我的JavaScript代码 以下是HTML 我想在输入标签上显示日期选择器。 我正在使用Bootstrap V3.1。 问题答案: 在使用$或jQuery的脚本之前 添加jQuery库 , 以便可以在脚本中标识$。

  • 问题内容: 我一直看到说使用=>或.bind(this)的答案,但这些解决方案均无效。 解: 问题答案: 当你 与ES2015类语法,你需要你的动作处理程序绑定到你的类的上下文。 试试这个: 通常,最好不要在其中使用箭头函数或方法,因为它会在每次调用时生成该函数的新副本。将函数声明移到。 我个人更喜欢在这种情况下使用箭头函数作为类属性 它不是ES2015规范的一部分,但babel stage-0预

  • 问题内容: 我正在尝试遵循有关NodeJ的教程。我不认为我会错过任何事情,但是每当我调用时,我得到的唯一值就是不确定的。根据我的研究,默认值应为“开发”。如何动态设置此值以及最初在哪里设置? 问题答案: process.env是对您的环境的引用,因此您必须在此处设置变量。 在Windows中设置环境变量: 在OS X或Linux上: