mysql - 错误:使用 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)
})
}
以及从邮递员收到的错误:
错误控制台:
解决方案
您需要在您的声明中回复您的res
电话。if (err)
如果您不添加返回,它将继续执行以下代码。
if(err) return res.send(err);
再说一次,您的错误源于此之前的某些事情。
推荐阅读
- c# - 将两个列表与一个列表作为用户输入进行比较总是触发标志
- java - 从java中的n个字符串用户输入中提取单词
- javascript - jQuery 视频播放器的全屏切换未正确分配类名
- python - 在python中将数组加入数据框
- javascript - 在 Transfer 组件的两边都有一个树结构
- angular - 简单的控制值访问器
- angular - 如何正确使用角度路由?
- php - 将具有不同标题的excel文件上传到数据库
- android - Glide 无法加载某些图像失败并出现异常
- java - 当引用特定版本的 Glassfish JAXB 时,Buildship Java 启动配置缺少 JAR