javascript - Node JS:Route.get() 需要一个回调函数,但是在使用 ES6 模块时得到了一个 [object Undefined]
问题描述
路由文件
scoreboardroute.js
import { scoreRouteController } from '../controllers/scoreboardcontroller';
const SCOREROUTE = app => {
app.route('/getAllScores').get(scoreRouteController.getAllScores);
};
export { SCOREROUTE };
控制器文件
scoreboardcontroller.js
import { scoreBoardModel } from '../model/scoreboardmodel';
class scoreRouteController {
getAllScores = (req, res) => {
scoreBoardModel.getAllScoresList((err, response) => {
if (err) {
res.send(err);
}
res.send(response);
});
};
}
export { scoreRouteController };
模型文件:
scoreboardmodel.js
import { db } from './db';
class scoreBoardModel {
getAllScoresList = callback => {
db.query('Select * from users', (err,response) => {
callback(err, response);
});
}
};
export { scoreBoardModel };
我试图在我的应用程序中使用 ES6 特性,如类和箭头函数。当我尝试执行此代码时,它遇到了以下错误。我不知道出了什么问题。我对节点 JS 服务器真的很陌生。所以,谁能帮我摆脱这个错误。
错误:
node_modules/express/lib/router/route.js:202 throw new Error(msg); ^
错误:Route.get() 需要回调函数,但在 SCOREROUTE ( /app/routes/scoreboardroute.js:4:32) 在对象。(/server.js:26:1) 在 Module._compile (internal/modules/cjs/loader.js:689:30)
解决方案
我正在寻找答案。
在导入我正在使用的类时,就像对象导入一样。所以,改变它像
import scoreRouteController from '../controllers/scoreboardcontroller';
而且我不会为我的应用程序使用这么多实例。因此,我为班级中的每个函数分配了 static 关键字。
static getAllScores = (req, res) => {.....
导出时我没有导出 Obj。我更改为默认类导出。
export default scoreRouteController;
最后,它起作用了。
推荐阅读
- bash - 删除大括号中的重复行
- php - 如何在 RHEL 8 上安装 ImageMagick、ImageMagick-devel 和 PECL imagick
- java - Java Robot mouseMove 脚本未关闭
- c - 为什么在使用 wprintf 时 ©(版权符号)被替换为 (C)?
- angular - Cousera 上的 Ionic 和 Angular
- amp-ad - 如何将 amp-auto-ad 配置为使用宽度 100% 而不是 100vw
- php - Symfony 4 和 Amazon S3 - AWS 凭证不起作用
- css - 移动视图上的内容被截断(iphone x、ipad、ipad pro)
- linux - 如何使用 bash 将文件中每一行的前 2 个字母添加到列表中?
- rust - 如何导入substrate_primitives 以使用sr25519?