#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
Я работаю над своим первым проектом в своей компании и застрял в post-запросе с использованием expressjs.
Ниже приведен мой код для post-запроса
const express = require('express')
const app = express()
const request = require('request')
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true}))
app.use(bodyParser.json())
app.post('/cruamsApi/updateUsers', (req, res) => {
const DisplayName = req.body.DisplayName
const EmployeeNumber = req.body.EmployeeNumber
const RegDate = req.body.RegDate
const url = 'http://localhost:8009/CruAmsAPI/Employee'
request (
{
url: url,
json: true,
body: {
"EmployeeNumber": EmployeeNumber,
"DisplayName": DisplayName,
"RegDate": RegDate
}
},
function (error, response, body) {
if(!error) {
res.send(response)
} else {
res.send(error)
}
}
)
})
app.listen(PORT, () => {
console.log('server is listening port ' PORT)
})
Когда я делаю POST-запрос, он продолжает возвращать сообщение об ошибке «Требуется параметр employeeNumber» из API. Я попытался заключить ключи в двойные кавычки «employeeNumber», но все еще сталкивался с той же проблемой. Заголовки тоже включены, но на самом деле не работают. POST-запрос работает в POSTMAN.
Комментарии:
1. Вы пытаетесь отправить или обработать POST-запрос?
const request = require('request')
не имеет отношения к ExpressJS. Можете ли вы запустить сервер в отладчике и добавить точку останова вconst EmployeeNumber = req.body.EmployeeNumber
? Какое значениеEmployeeNumber
после этой строки?2. @ThomasSablik Как я могу запустить сервер в отладчике? Извините, я никогда раньше не пробовал отладчик.
3. @ThomasSablik Я только что погуглил и сейчас работаю над этим 🙂
4. @ThomasSablik Ничего не происходит в точке останова отладчика
5. Используя отладчик, вы можете видеть значения каждой переменной на каждом шаге. Какое значение
EmployeeNumber
после строкиconst EmployeeNumber = req.body.EmployeeNumber
?
Ответ №1:
Вы пытались отправить employeeNumber в своем запросе? Если он работает в Postman, он должен работать. Я думаю, что ваша проблема заключается в вашем интерфейсе, который не отправляет никакого EmplyeeNumber в запросе.