В Node Js, в файле ввода, например, индекс. js, Как я могу получить запрошенные данные в виде данных формы или в форме URL-кода или в виде необработанных данных JSON в промежуточном программном обеспечении?
В моем проекте я обрабатываю различные запросы API. Несколько запросов содержат тип файла, поэтому запрашиваются как данные формы. Немногие запросы не содержат тип файла, поэтому запросы поступают в виде Form-URL-кода.
Теперь главная проблема перед маршрутизацией, мне нужно поле c, указанное в req.body в промежуточном программном обеспечении. Но я получаю req.body как неопределенное.
Для справки вот мой индекс. js файл:
const express = require('express');
const app = express();
app.use(express.raw());
app.use(express.urlencoded({ extended: false }));
app.use((req, res, next) => {
const routes_handler = require('./routes/index.js')(app, express, req);
next();
})
app.listen(3000, () => {
console.log("Server running at Port " + 3000);
});
и файл routes/index.js
следующим образом:
module.exports = function (app, express, req) {
console.log(req.body);
//I need here data of req.body for all requests type (form data, URL-encoded, raw JSON)
app.post('/', function (req, res) {
console.log("Here I can get the requested body easily", req.body)
res.send('Hello World');
});
app.post('*', function (req, res) {
res.send({
code: 0,
message: 'No Content',
status_code: 204,
data: {
error: 'API not found!'
}
});
});
}
Кроме того, я знаю, что для данных типа файла POSTMAN будет отправлять запрос как данные формы, а не как URL-адрес формы. Так что я должен выбрать Formidable
или Multer
?