javascript - Node JS : Route. get() 需要一个回调函数,但在使用 ES6 模块时得到了一个 [对象未定义]

标签 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 };

Controller 文件

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 功能,例如类和箭头函数。当我尝试执行此代码时,出现以下错误。我不知道出了什么问题。我对 Node JS 服务器真的很陌生。 那么,谁能帮我摆脱这个错误。

错误:

node_modules/express/lib/router/route.js:202 抛出新的错误(消息); ^

错误:Route.get() 需要一个回调函数,但得到了一个 [对象未定义] at Route.(匿名函数) [as get] (/node_modules/express/lib/router/route.js:202:15) 在 SCORROUTE (/app/routes/scoreboardroute.js:4:32) 在对象。 (/server.js:26:1) 在Module._compile(内部/modules/cjs/loader.js:689:30)

最佳答案

我正在寻找答案。

在导入类时,我使用类似对象导入的方式。所以,把它改成这样

import scoreRouteController from '../controllers/scoreboardcontroller';

而且我不会在我的应用程序中使用这么多实例。因此,我为类中的每个函数分配 static 关键字。

static getAllScores = (req, res) => {.....

导出时我没有导出对象。我改成了默认类导出。

export default scoreRouteController;

最后,它起作用了。

关于javascript - Node JS : Route. get() 需要一个回调函数,但在使用 ES6 模块时得到了一个 [对象未定义],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57534017/

相关文章:

javascript - 是否可以使用 JavaScript 重新加载特定的浏览器选项卡?

javascript - JS通过变量调用对象属性

node.js - 未添加域名,白名单域名 facebook Messenger 扩展

javascript - Firebase 实时数据库执行条件查询

node.js - 如何安装新的 nodejs 模块到 expressjs 项目?

node.js - 下载响应 angular2 中发送的文件

javascript - 当我清除 div 时,设置超时仍然运行

javascript - 以正确的顺序文件依赖

node.js - Unresolved 函数或方法应用程序 | Node .js

javascript - Nodejs,需要函数内或脚本顶部的模块。哪个更适合自定义模块?