I'm newish to NodeJS. Trying to make a POST request, but all the integers in the params are being passed as NaN. On the second line below, you can see in the request that actual numbers are assigned to the params, but then the first line where the post request is happening, all the numbers are NaN. What am I missing here?
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 });
});
};
When I change to req.params none of the data is present:
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
Looks to me like:
const { requestor_id, requestee_id, meeting_time, accepted, location, location_address, status, lang_one_id, lang_two_id } = req.body;
Should be:
const { requestor_id, requestee_id, meeting_time, accepted, location, location_address, status, lang_one_id, lang_two_id } = req.params;
Or wherever the query parameters are from your request object. Given that you are invoking your post request with query params rather than a payload in the request body.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With