Как разветвить res.send на основе разных ключей req.body на одной странице? - PullRequest
0 голосов
/ 13 июля 2020

Итак, я создаю API, в котором в зависимости от запроса, отправляемого на NodeJS Сервер, отправляемый ответ отличается.

Выполняется 2 JSON запросов:

  • Один из них включает ключ под названием status
  • , тогда как другой имеет ключ под названием customer_code

Как я могу изменить разрешение .send на основе req.body?

Я сделал это, но не удалось:

app.post("/", function(req, res) {
    var toCheckStatus = req.body.notify.status
    var toCheckID = req.body.validate.customer_code
    let toCheckIDKey;
    if (toCheckStatus){ 
        res.send({"notifyResult": {"result": "ok"}})
    }else{
        fs.readFile('./codes.json', function(err, data){
            if (err) throw err
            var cleanData = JSON.parse(data);
            for(var i=0;i < Object.keys(cleanData).length; i++){
            if(cleanData[i].customer_code == toCheckID){
                toCheckIDKey = i;
            }}
            if (toCheckIDKey > -1){
                res.send ({
                    "validateResponse": {
                    "decision": "pass"
                    }
                    });
            }else res.send({
                "validateResponse": {
                "decision": "reject"
                }
                })
        })   
    }
});

Я получаю одну из текущих ошибок:

Невозможно прочитать свойство «customer_code» из неопределенного

Невозможно прочитать свойство «status» из неопределенного

1 Ответ

2 голосов
/ 13 июля 2020

Две вещи могут вызвать указанную вами ошибку:

  1. Возможно, вам потребуется добавить body-parser middleware для синтаксического анализа json тела запроса.
var bodyParser = require('body-parser')
var app = express()

// parse application/json
app.use(bodyParser.json())
проверьте, что свойство validate существует в вашем запросе
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...