使用ES6类的快速路由

贾斯汀

因此,以下代码在开发中有效,并且在生产环境中运行时失败,错误为TypeError: Router.use() requires middleware function but got a Object到目前为止,我必须已经尝试了大约一百种不同的方法,并且都获得了相同的结果。在dev中工作,不在prod中工作。

/server/routes.js

'use strict';

export class AppRoutes
{
    constructor(app)
    {
        this.app = app;

        return function initialize(app)
        {
            app.use('/mail', require('./api/mail'));
        }
    }
}

/server/app.js

var app = express();
import { AppRoutes } from './routes';
let router = new AppRoutes();
router(app);

// start the server here

// Expose app
export default app;

同样,在开发人员中工作时,ES6被编译并在生产环境中运行该应用程序时会中断。预先感谢您对此事的任何想法。

更新

错误在的第458行引发/node_modules/express/lib/router/index.js这就是传递给Router.use()

{ default: 
   { [Function: router]
     params: {},
     _params: [],
     caseSensitive: undefined,
     mergeParams: undefined,
     strict: undefined,
     stack: [ [Object], [Object] ] 
    } 
}

这是我认为与错误相关的依赖项版本(在prod中与在dev中相同):

节点v0.12.2

从我的package.json

{
    "express": "^4.13.3",
    "babel-runtime": "^5.8.20",
    "grunt-babel": "^6.0.0"
},
"devDependencies": {
    "babel-core": "^5.8.34",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-stage-0": "^6.1.18"
}
刚无聊

发生这种情况是因为Babel在6.0中更改了默认导出行为。

现在,如果要获取默认导出,则应隐式执行此操作:

app.use('/mail', require('./api/mail').default);

您可以在另一个问题中看到有关此更改动机的答案

另外,所有babel-*软件包都应使用相同的主版本。6.0预设不适用于5.8 babel-core。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 express 和 ES6 类在 node js rest api 中查找路由的问题

来自分类Dev

使用ES6类反应静态

来自分类Dev

ES6早期使用类

来自分类Dev

在ES6类中使用EventEmitter

来自分类Dev

使用“类”和 ES6

来自分类Dev

如何与ES6一起配置快速路由器?

来自分类Dev

嵌套的ES6类?

来自分类Dev

ES6类的范围

来自分类Dev

ES6 JavaScript 类

来自分类Dev

Node.js,将路由表示为es6类

来自分类Dev

ES6类,通过传递函数作为参数来注册expressjs路由

来自分类Dev

专用路由功能代码将转换为React-Redux的ES6类版本

来自分类Dev

使用嵌套类在ES6中模拟名称空间

来自分类Dev

转换Singleton JS对象以使用ES6类

来自分类Dev

ES6类中的受保护属性(使用Symbols?)

来自分类Dev

使用ES6模块导出/导入单类方法?

来自分类Dev

未使用Node + ES6 + Babel定义的类方法

来自分类Dev

使用导入的类在ES6中返回空承诺

来自分类Dev

使用ES6类的React Component中的此对象

来自分类Dev

使用ES6类时的链接承诺

来自分类Dev

使用 ReactJS 在 ES6 类中嵌套“this”绑定

来自分类Dev

使用 ES6 类方法处理 DOM 事件

来自分类Dev

如何在 ES6 类中使用组合方法?

来自分类Dev

如何在 ES6 类中使用匿名函数

来自分类Dev

Javascript - 使用类 (ES6) 更改大量 if 语句

来自分类Dev

如果我使用es6格式,则无法将类作为函数调用,React路由器在控制台中显示错误

来自分类Dev

从非类继承ES6 / TS类

来自分类Dev

ES6类文字中的IIFE

来自分类常见问题

从库中模拟ES6类