Вам нужно иметь body-parser, чтобы использовать данные json в node и express.Итак, чтобы ваш код работал.Сначала установите body-parser с помощью команды 'npm install body-parser', затем используйте его в качестве промежуточного программного обеспечения в своем коде, как показано ниже:
var express = require('express')
var cors = require('cors')
var app = express()
var port = process.env.port || 1337
var bodyParser = require('body-parser')
app.use(cors({origin: true}));
//It will parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
//It will parse application/json
app.use(bodyParser.json())
var imagenmatriculaController = require('./controllers/imagenmatriculaController.js')()
app.use("/api/imagenmatricula", imagenmatriculaController)
app.listen(port, function () {})
В файле imagenmatriculaController.js введите
var express = require('express')
var router = express.Router()
var routes = function (){
router.route('/')
.post(function(req,res){
console.log(req.body)
res.json('ok')
})
return router
}
module.exports = routes
Ваш клиент переднего плана должен содержать следующий код:
var headers = {
'Content-Type': 'application/json;charset=UTF-8',
'Access-Control-Allow-Origin': '*'
};
axios.post('http://localhost:1337/api/imagenmatricula', {
headers: headers,
data: { test: 'test' }
})
.then(response => {
console.log(response);
}).catch(error => {
console.log(error);
console.log('ERROR::', error.response.body);
});
Примечание :: Если вы используете более высокую версию express, т.е. v4.16.0, тогда вместо использования bodyParser.json()
и bodyParser.urlencoded()
вы можете использовать express.json()
и express.urlencoded()
, потому что это встроенное промежуточное ПО Express от версии v4.16.0.Так что выбирайте мудро,
app.use(express.json())
app.use(express.urlencoded())