Javascript Node JS:Route.get()需要回调函数,但在使用ES6模块时得到了一个[object Undefined]
路由文件Javascript Node JS:Route.get()需要回调函数,但在使用ES6模块时得到了一个[object Undefined],javascript,node.js,express,es6-modules,es6-class,Javascript,Node.js,Express,Es6 Modules,Es6 Class,路由文件 scoreboardroute.js import { scoreRouteController } from '../controllers/scoreboardcontroller'; const SCOREROUTE = app => { app.route('/getAllScores').get(scoreRouteController.getAllScores); }; export { SCOREROUTE }; 控制器文件 s
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功能,比如类和箭头函数。当我试图执行这段代码时,它遇到了以下错误。我不知道出了什么问题。我是NodeJS服务器的新手。
那么,谁能帮我摆脱这个错误呢
错误:
node_modules/express/lib/router/route.js:202
抛出新错误(msg);
^
错误:Route.get()需要回调函数,但得到了[object Undefined]
at Route.(匿名函数)[as get](/node_modules/express/lib/router/Route.js:202:15)
在SCOREROUTE(/app/routes/scoreboardroute.js:4:32)
反对。(/server.js:26:1)
在模块处编译(internal/modules/cjs/loader.js:689:30)我正在找到答案 在导入类时,我使用了类似对象导入的方法。所以,改变了它
import scoreRouteController from '../controllers/scoreboardcontroller';
我不会在我的应用程序中使用这么多实例。因此,我为类中的每个函数指定static关键字
static getAllScores = (req, res) => {.....
导出时,我没有导出Obj。我改为默认类导出
export default scoreRouteController;
最后,它是有效的。您将类视为实例。只使用对象会更简单,因为没有任何方法使用
this
。我只想试试ES6。这就是为什么我要插手这件事。你能告诉我这种方法出了什么问题吗?我告诉过你出了什么问题:你把类当作实例来对待。如果你真的想使用这些类,你必须在某个地方更新它们。我不明白。你能详细说明一下吗?然后去读一读。如果你想使用这些功能,你必须学习它们的基础知识。