Я пытаюсь извлечь данные POST с помощью сценария NodeJS (с Express). Тело получено, но я не могу извлечь из него переменную при публикации на странице с Почтальон. Переменная не определена, хотя я использовал тот же код, что и в разных вопросах. Я правильно установил Nodejs, экспресс и body-parser.
Чтобы уточнить, я отправляю данные формы с помощью Postman с ключом «имя пользователя» и значением «тест».
Кто-нибудь знает, что я делаю не так?
var https = require('https');
var fs = require('fs');
var app = require('express')();
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var httpsOptions = {
key: fs.readFileSync('/home/privkey.pem'),
cert: fs.readFileSync('/home/cert.pem'),
};
var server = https.createServer(httpsOptions, app);
server.listen(3000);
app.get('/', function(req, res) { //On get
res.send(req.method);
});
app.post('/', function(req, res) { //On post
res.send( req.body.username );
});
@LevKuznetsov Да, вот и все, я пробовал публиковать как "сырые", а затем установил Json, это сработало!
Думаю, это связано с кодировкой:
JSON: вам нужно установить заголовок с Тип содержимого: приложение / json и добавить кодировку в экспресс перед маршрутом:
app.use (bodyParser.json ());
app.use (bodyParser.urlencoded ({extended: true}));
В противном случае вы можете просто использовать опцию x-www-form-urlencoded и установить входы
Я не знаю, сделает ли парсер тела что-нибудь для формирования mime-типа данных без конфигурации. Попробуйте отправить тип application / json и указать необработанное тело {"username": "foo"}