【发布时间】:2021-10-24 20:59:06
【问题描述】:
我正在尝试使用 React.js、Express.js 和 Node 来实现 CRUD 操作,所以我编写了一个基本代码并且可以正常工作,但我想使用 Model 和 Controller 来编写一个干净的代码,这样就无法正常工作并向我发送错误我不知道'不知道问题是什么,所以这里有人可以指导我让它工作。顺便说一句,Get 可以工作,但要插入编号。
我用邮递员测试它,我得到:
Error : Cannot POST /api/insert
代码如下:
Controller.js
// create new car
exports.createNewCar = (req, res) =>{
const carReqData = new CarModel(request.body);
console.log('carReqData', carReqData);
// check null
if(req.body === Object && Object.keys(req.body).length === 0){
res.send(400).send({success: false, message: 'Please fill all fields'});
}else{
CarModel.createCar(carReqData, (err, car)=>{
if(err)
res.send(err);
res.json({status: true, message: 'Car Created Successfully', data: car.insertId})
})
}
}
Model.js
// create new car
var Car = function(car){
this.idCars = car.idCars;
this.carName = car.carName;
this.carModel = car.carModel;
}
Car.createCar = (carReqData, result) =>{
db.query('INSERT INTO Cars SET ?', carReqData, (err, res)=>{
if(err){
console.log('Error while inserting data');
result(null, err);
}else{
console.log('Car created successfully');
result(null, res)
}
})
}
Routes.js
// create new car
router.post('/insert', carController.createNewCar);
Index.js
app.use('/insert', CarRoutes);
【问题讨论】:
-
您的 POST 路由错误正在返回前缀 '/api',因此请检查您的路由器定义,请参阅此处了解如何为路由添加前缀,这可能会给您一些需要寻找的东西:stackoverflow.com/questions/68910733/…
-
@ConBran 是的,我应该将 /api 添加到发布路线...谢谢
标签: javascript mysql node.js reactjs express