CRUD op Express.js Node.js Mysql 无法使用 MVC 插入
Posted
技术标签:
【中文标题】CRUD op Express.js Node.js Mysql 无法使用 MVC 插入【英文标题】:CRUD op Express.js Node.js Mysql Cannot insert using MVC 【发布时间】: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',因此请检查您的路由器定义,请参阅此处了解如何为路由添加前缀,这可能会给您一些需要寻找的东西:***.com/questions/68910733/… @ConBran 是的,我应该将 /api 添加到发布路线...谢谢 【参考方案1】:我通过编辑路线解决了这个问题
Routes.js
router.post('/', carController.createNewCar);
index.js
app.use('/app/insert', CarRoutes);
【讨论】:
以上是关于CRUD op Express.js Node.js Mysql 无法使用 MVC 插入的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数传递给 MEAN.js 包的 express.js 服务器端路由。