首页 > 解决方案 > CRUD op Express.js Node.js Mysql 无法使用 MVC 插入

问题描述

我正在尝试使用 React.js、Express.js 和 Node 来实现 CRUD 操作,所以我编写了一个基本代码并且这可以工作,但我想使用 Model 和 Controller 来获得一个干净的代码,所以这不起作用并向我发送我不知道的错误问题是什么所以这里有人可以指导我让它工作吗?顺便说一句,Get 有效,但插入没有。

我用邮递员测试它,我得到:

Error : Cannot POST /api/insert

这是代码:

控制器.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})
        })
    }
}

模型.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)
        }
    })
}

路由.js

// create new car
router.post('/insert', carController.createNewCar);

索引.js

app.use('/insert', CarRoutes);

标签: javascriptmysqlnode.jsreactjsexpress

解决方案


我通过编辑路线解决了这个问题

路由.js

router.post('/', carController.createNewCar);

index.js

app.use('/app/insert', CarRoutes);

推荐阅读