无法读取属性';用户名';未定义JavaScript的定义

无法读取属性';用户名';未定义JavaScript的定义,javascript,amazon-web-services,server,request,postman,Javascript,Amazon Web Services,Server,Request,Postman,我正在尝试使用Postman应用程序发送帖子,我的Js代码实际上就是我将在这里发布的代码,它代表了帖子。 我的要求是: { "username" : "UserAbc", "password" : "password" } 这个错误是我在标题中写的。有什么想法吗?谢谢 app.post('/register', (req, res) => { const username = req.body.username; const passw

我正在尝试使用Postman应用程序发送帖子,我的Js代码实际上就是我将在这里发布的代码,它代表了帖子。 我的要求是:

{

    "username" : "UserAbc",
    "password" : "password"
}
这个错误是我在标题中写的。有什么想法吗?谢谢


    app.post('/register', (req, res) => {
      const username = req.body.username;
      const password = req.body.password;

      if (!username || !password) {
        res.json({
          error: 'Missing required parameters'
        });
        return;
      }

      let user = new User({
        username: username,
        password: password,
      })
        user.save();

      let tokenKey = uuidv1();
      let newToken = new Token({
        token: tokenKey,
        expire: ~~(Date.now() / 1000) + 3600 * 24,
      })
      newToken.save();

      res.status(200).send({ token: tokenKey });
    });

它看起来像:
const username=req.body.username

req
不包含
正文

试试这行代码,看看你的错误是否消失了。
const username=(req.body | |{})


这不是一个解决方案,而是一种查看这是否是问题的方法。如果您的错误变成了其他问题,您已经发现了问题。

基于此错误,您似乎没有使用主体解析中间件,您必须执行以下操作:

app.use(express.json());
以便在请求对象上设置
body
属性


服务器上似乎没有解析您的帖子数据

这可能有几个原因

  • 确保您有一个主体解析器,例如

    运行
    npm install body parser
    后,在代码中,您需要在使用
    req.body
    的任何路由之前添加以下内容:

    constbodyparser=require('body-parser');
    app.use(bodyParser.json())
    
  • 如果您已经有body解析器,那么在Postman中body mime类型没有设置为
    application/json
    ,请确保将类型设置为json:


  • 在post方法中,上面的
    const username…
    add
    console.log(req)
    然后打开broswer控制台并刷新页面。看看
    req
    实际上是什么,因为我怀疑这不是你所期望的。谢谢!现在我收到:{“error”:“缺少必需的参数”}。我认为我的Json格式现在是个问题。非常感谢!