2017-01-18 7 views
1

Я пытаюсь передать простой запрос POST с помощью почтового менеджера в мое экспресс-приложение, однако запрос на отправку времени истекает.Экспресс-запрос app.post не отвечает на запрос Postman POST

Вот запрос:

<code>http://localhost:3000/?inviteCode=12</code>

А вот это приложение:

import express from 'express' 
import bodyParser from 'body-parser' 
import path from 'path' 

const app = express() 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

app.post('/', (req,res) => { 
    console.log(req.body) 

    if (req.body.inviteCode === "12") { 
     res.json({value: "success"}) 
    } else { 
     res.json({value: "fail"}) 
    } 
}) 

app.listen(process.env.PORT || 3000,() => { 
    console.log(`App listening on ${process.env.PORT || 3000}`) 
}) 

console.log(req.body) печатает пустой объект {}

Любая идея, что может быть неправильно?

ответ

1

Вы не указали inviteCode в параметрах POST в Postman (как показано на скриншоте, ввод значения ключа под вкладкой «Тело»), вместо этого вы передаете inviteCode в качестве параметра запроса URL-адреса, который будет установлен в req.query.inviteCode.

Чтобы использовать его с помощью параметра запроса (в URL), соответствующий вашей Почтальон запрос:

app.post('/', (req,res) => { 
    req.query.inviteCode === "99" ? res.json({value: "success"}) : res.json({value: "fail"}) 
}) 

Или использовать его в теле POST, который требует установления вашей Почтальон запрос:

app.post('/', (req,res) => { 
    console.log(req.body) 

    req.body.inviteCode === "99" ? res.json({value: "success"}) : res.json({value: "fail"}) 
}) 
+0

Вы правы, но все еще не удается, когда я отправляю правильную полезную нагрузку. Отредактированный мой вопрос, чтобы отразить это – softcode

+0

Вы не добавили ключ 'inviteCode' и значение под вкладкой body на вашем снимке Postman. – MattMS

+0

Шляпы от вас – softcode