javascript - NodeJS 发布请求 - 参数中的数字返回 NaN

标签 javascript node.js post parseint

我是 NodeJS 的新手。尝试发出 POST 请求,但参数中的所有整数都作为 NaN 传递。在下面的第二行,你 可以在请求中看到将实际数字分配给参数,但是在发生发布请求的第一行,所有数字都是 NaN。我在这里缺少什么?

2018-08-06T20:44:24.391354+00:00 app[web.1]: Executing (default): INSERT INTO "public"."meetings" ("id","requestor_id","requestee_id","lang_one_id","lang_two_id","meeting_time","accepted","status","requestor_score","requestee_score") VALUES (DEFAULT,NaN,NaN,NaN,NaN,'2018-08-06 20:44:24.000 +00:00',false,'Active',0,0) RETURNING *;
2018-08-06T20:44:24.401308+00:00 app[web.1]: POST /api/meetings/createMeeting?requestor_id=32&requestee_id=1&meeting_time=2018-08-16%2013:00:00&location=NYC&location_address=NYC&lang_one_id=1&lang_two_id=2 500 59.324 ms - 1272

Controller :

meetings.createMeeting = (req, res) => {
  const { requestor_id, requestee_id, meeting_time, accepted, location, location_address, status, lang_one_id, lang_two_id } = req.body;
  let data = {
    requestor_id: parseInt(requestor_id),
    requestee_id: parseInt(requestee_id),
    meeting_time: Date(meeting_time),
    accepted: false,
    location,
    location_address,
    status: "Active",
    lang_one_id: parseInt(lang_one_id),
    lang_two_id: parseInt(lang_two_id),
    requestor_score: parseInt(0),
    requestee_score: parseInt(0),
    created_at: Date.now(),
    updated_at: Date.now()
  };
  models.Meetings.create(data)
    .then(response => {
      res.status(200).json({ status: 200, message: response });
    })
    .catch(error => {
      res.status(500).json({ status: 500, err: error });
    });
};

当我更改为 req.params 时,没有任何数据存在:

2018-08-06T21:11:21.830182+00:00 app[web.1]: Executing (default): INSERT INTO "public"."meetings" ("id","requestor_id","requestee_id","lang_one_id","lang_two_id","meeting_time","accepted","status","requestor_score","requestee_score") VALUES (DEFAULT,NaN,NaN,NaN,NaN,'2018-08-06 21:11:21.000 +00:00',false,'Active',0,0) RETURNING *;
2018-08-06T21:11:21.849573+00:00 app[web.1]: POST /api/meetings/createMeeting?requestor_id=32&requestee_id=1&meeting_time=2018-08-16%2013:00:00&location=NYC&location_address=NYC&lang_one_id=1&lang_two_id=2 500 51.120 ms - 1272

最佳答案

在我看来:

  const { requestor_id, requestee_id, meeting_time, accepted, location, location_address, status, lang_one_id, lang_two_id } = req.body;

应该是:

  const { requestor_id, requestee_id, meeting_time, accepted, location, location_address, status, lang_one_id, lang_two_id } = req.params;

或者查询参数来自您的请求对象的任何地方。鉴于您正在使用查询参数而不是请求正文中的有效负载调用您的发布请求。

关于javascript - NodeJS 发布请求 - 参数中的数字返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51715450/

相关文章:

python - 这是 Post 请求问题还是 SSL 验证问题

javascript - 内联和外部 JS 的不同结果 "return confirm"

javascript - 将 UTF-8 编码的 JSON 从 DB 解析为 JS

javascript - 只有一个 mp4 文件的 MPEG-DASH 视频流

javascript - 使函数的行为类似于实例化的 EventEmitter

node.js - Sails autoCreatedAt 和 autoUpdatedAt 插入比我当前时区向前 5 小时的日期时间

grails - Grails:JIRA基本身份验证的POST方法-不支持的媒体类型

javascript - 在 HTML 表格中显示/隐藏图像

node.js - 如何在Windows上后台运行Vue应用程序

php - 奇怪的 apache/PHP POST 错误