CRUD op Express.js Node.js Mysql无法使用MVC插入

IT技术 javascript mysql node.js reactjs express
2021-05-11 11:33:15

我正在尝试使用 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);
1个回答

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

路由.js

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

索引.js

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