首页 > 解决方案 > 错误:使用 Nodejs express 和 Mysql 的 Crud

问题描述

我在我的项目中遇到了一个问题,我尝试使用 MVC 进行 CRUD,但是当我运行代码时它没有从 db 返回任何数据,连接工作正常我不知道为什么它不起作用。我正在使用 NodeJS Express 和 mysql。

这是我的代码:

index.js:

db.connect(function(err) {
  if (err) {
    return console.error('error: ' + err.message);
  }
  console.log('Connected to the MySQL server.');
});

const usersRouter= require("./routes/routes");

app.use("/api/", usersRouter)

路线.js:

// get latest record of airMonitoring 
router.get("/", airController.getAllData);

模型.js:

const AirMonitoring = function(table){
    this.id = table.id;
    this.Temperature = table.Temperature;
    this.Humidity = table.Humidity;
    this.AirCondition = table.AirCondition;

}
// get all data from airMonitoring


    AirMonitoring.getAllData = ( result) =>{
        db.query('SELECT * FROM AirMonitoring', (err, res)=>{
            if(err){
                console.log('Error while fetching airMonitoring', err);
                result(err, null);
            }else{
                console.log('AirMonitoring fetched successfully');
                result(res, null);
            }
        })
        }

控制器.js:

exports.getAllData = (req, res)=> {
   
    AirModel.getAllData((err, airMonitoring) =>{
        if(err)
        res.send(err);
        console.log('data', airMonitoring);
        res.send(airMonitoring)
    })
}

以及从邮递员收到的错误:

在此处输入图像描述

错误控制台:

在此处输入图像描述

标签: mysqlnode.jsexpressfetchcrud

解决方案


您需要在您的声明中回复您的res电话。if (err)如果您不添加返回,它将继续执行以下代码。

if(err) return res.send(err);

再说一次,您的错误源于此之前的某些事情。


推荐阅读