Как обрабатывать параметр в POST-запросе в ExpressJS

#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 в запросе.