У меня есть nodejs
экспресс-сервер и nodejs
axios
клиент, я пытался отправить данные поста с заголовком x-www-form-urlencoded
.
app.post('/login', (req, res) => {
const { username, password } = req.body
console.log(req.body)
})
тело запроса от клиента nodejs axios:
{ '{"username":"gefalko","password":"mypass"}': '' }
тело запроса от клиента почтальона:
{"username":"gefalko","password":"mypass"}
Я использую 'body-parser' https://www.npmjs.com/package/body-parser промежуточное ПО для анализа тела запроса на сервере.
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
и мой axios
код выглядит так:
const axios = require('axios')
const prompt = require('prompt')
var prompt_attributes = [
{
name: 'username',
validator: /^[a-zA-Z\s\-]+$/,
warning: 'Username is not valid, it can only contains letters, spaces, or dashes'
},
{
name: 'password',
hidden: true
}
]
prompt.start();
prompt.get(prompt_attributes, function (err, result) {
if (err) {
console.log(err);
return 1;
}else {
console.log('Command-line received data:');
const username = result.username
const password = result.password
const config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
const reqBody = {
username: username,
password: password
}
axios.post('http://localhost:3005/login', reqBody, config).then(response => {
console.log(response.data);
}).catch(error => {
console.log(error);
})
}
});