gpt4 book ai didi

node.js - *类型错误: Cannot read property 'body' of undefined* when implementing REST API with nodejs to add new data to database

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:50 25 4
gpt4 key购买 nike

我必须(使用node.js)实现REST API以将新客户端添加到数据库(使用POST方法)。我必须使用 Postman 来测试该 API。

我遇到以下错误:

类型错误:无法读取未定义的属性“body”

这是我的代码:

customerController.js

const sql = require('../db/customerSQL');
module.exports = {

createCustomers: async (req, res) => {
console.log("createCustomer: ", req.body);
try {
let nimi = req.query.nimi;
let osoite = req.query.osoite;
let postinro = req.query.postinro;
let postitmp = req.query.postitmp;
let luontipvm = req.query.luontipvm;
let asty_avain = req.query.asty_avain;

let c = await sql.createCustomers(nimi, osoite, postinro, postitmp, luontipvm,
asty_avain);
console.log("Next");
res.statusCode = 201;
res.json({ status: "OK" });
}
catch (err) {
console.log("Not working! ", err)
res.status = 400;
res.json({ status: "NOT OK", msg: err });
}
}
}

customerSQL.js

var mysql = require('mysql');

var connection = mysql.createConnection({
host: 'localhost',
user: 'restUser',
password: 'restUser123!',
database: 'Customer',
dateStrings : true
});

module.exports = {


createCustomers: (req, res) => {

return new Promise ((resolve, reject) => {
let query = "INSERT INTO asiakas (NIMI, OSOITE, POSTINRO, POSTITMP, LUONTIPVM, ASTY_AVAIN)
VALUES(?, ?, ?, ?, ?, ?)";
console.log("query:" + query);
console.log(req.body);

connection.query(query, [req.body.NIMI, req.body.OSOITE, req.body.POSTINRO,
req.body.POSTITMP,req.body.ASTY_AVAIN], function (error, result, fields) {

if (error) {
reject(error);
}
else {
resolve(result);
}
});
})
}
}

customerRoutes.js

var express = require('express'); 
var app = express();
var router = express.Router();

let ctrl = require('../controllers/customerController');


// Postman: localhost:3000/asiakas
router.route('/asiakas')
post(ctrl.createCustomers);

module.exports = router;

index.js

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.use(bodyParser.json());

var port = 3000;
var hostname = "127.0.0.1";

var cors = function (req, res, next)

{
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}

app.use(cors);

const customerRoutes = require('./routes/customerRoutes');
app.use(customerRoutes);

app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

如何解决这个问题?

最佳答案

 const sql = require('../db/customerSQL');

module.exports = {


createCustomers : (req, res) => {
console.log("createCustomer: ", req.body);

res.statusCode = 201;
if ( req.body.NIMI == null ){
res.status = 400;
res.json({status : "NOT OK", msg : "Name is missing"})
return;

else{
sql.createCustomers(req,res);
}
},

}

关于node.js - *类型错误: Cannot read property 'body' of undefined* when implementing REST API with nodejs to add new data to database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59709295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com