使用 ES6 类的快速路由

2024-02-08

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

/服务器/routes.js

'use strict';

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

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

/服务器/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 被转译并且应用程序在生产环境中运行时,就会出现问题。预先感谢您对此事的任何想法。

update

错误在第 458 行抛出/node_modules/express/lib/router/index.js。这就是传递给的内容Router.use():

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

以下是我认为与错误相关的依赖项的版本(产品中的版本与开发中的版本相同):

节点 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);

您可以在以下位置查看有关此更改动机的答案:另一个问题 https://stackoverflow.com/questions/33505992/babel-6-changes-how-it-exports-default

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ES6 类的快速路由 的相关文章

随机推荐

  • Microsoft Edge浏览器如何读取剪贴板数据

    我无法在 Microsoft Edge 浏览器中读取剪贴板数据 我正在使用下面的 JavaScript if window clipboardData window clipboardData getData IE pastedText w
  • 将类型变量替换为 const 成员

    假设我有一个包含一些常量成员的类 class MyClass public MyClass int a a a MyClass MyClass 0 MyClass const int a 现在我想存储一个实例MyClass某处 例如作为全局
  • 了解 CSS 选择器优先级/特异性

    我想了解 CSS 选择器如何处理属性冲突 如何选择一种财产而不是另一种财产 div background color red div my class background color black div my id background
  • 在Eclipse中一步步调试java程序

    我想逐行调试java程序的整个流程 我正在使用eclipse 我怎样才能做到这一点 在 Eclipse 中调试 Java 程序需要多个步骤 例如 设置断点 启动调试器 控制程序的执行 对于逐行使用 F6 和 F5 进入方法 评估变量等 把所
  • 如何让 ES6 生成器等待 Promise,就像在 redux-saga 中一样?

    我读过 生成器不会等待承诺 为什么发电机的情况并非如此 redux saga 以及如何让我自己的发电机等待 例如 这个传奇 takeLatest FETCH USER REQUESTED function const fetchPromis
  • 如何使用反应式表单包装像自动完成这样的 primeng 组件?

    我想将 primeng 自动完成组件包装在我自己的组件中 但无法弄清楚如何提供 formControlName 错误 未捕获 承诺中 错误 formControlName 必须与父 formGroup 指令一起使用 包装组件 html
  • 防止 OS X Chrome 和 Safari 上的弹性滚动

    我正在寻找一种方法来防止 Chrome 和 Safari 中 OS X 上发生的弹性滚动 如果你不明白我的意思 那就是当页面位于顶部时向上滚动 或当页面位于底部时向下滚动 并且页面后面会显示灰色背景 对于单页应用程序有一个 css 解决方案
  • connect-mongo 每秒创建新会话

    我的 Nodejs 应用程序托管在 Openshift 上 这是我的规格 节点 v0 10 35 express v3 4 8 我的 package json 依赖项 dependencies angular loading bar 0 9
  • 画布缩放通过 CSS 还是 JS 性能更高?

    以下文档提到了 HTML5 Canvas 性能缩放的一些准则 https developer mozilla org en US docs Web API Canvas API Tutorial Optimizing canvas Scal
  • 去掉小数点后的 0 值

    我想问是否有人知道删除十进制 0 值的查询 例如 字段名称百分比具有这些值 Percent 770 00000000000000000000 340 670000000000000000000 96 00000000000000000000
  • 如何使用 @angular/http 返回字符串而不是 Observable

    我正在将 Angular 4 与 net core WEB API 挂钩 Web API 根据传入的 ID 以字符串形式返回 CustomerName 这是 Angular 4 中的服务方法 我知道 Angular http 必须返回一个
  • 控制器如何手动设置某个字段的验证错误

    我有一个包含 3 个 ActiveRecord 字段的表单 其中一个字段有一种愚蠢的 依赖于国家的验证要求 例如 如果在设置向导表单上创建对象 我仅验证该字段 在我的 POST 处理程序中创建对象时 我想我可以调用errors add 来插
  • python 中的 Mechanizer - 选择没有名称的表单字段

    我有一个类似的问题选择机械化表单中的未命名文本字段 python https stackoverflow com questions 4787907 selecting an unnamed text field in a mechaniz
  • 使用 C++11 基于范围的正确方法是什么?

    使用 C 11 基于范围的正确方法是什么for 应该使用什么语法 for auto elem container or for auto elem container or for const auto elem container 或者其
  • SQL Server 不区分大小写的排序规则

    在 SQL Server 中使用不区分大小写的排序规则有哪些优点 缺点 就查询性能而言 我有一个数据库当前正在使用不区分大小写的排序规则 但我不太喜欢它 我非常想将其更改为区分大小写 更改排序规则时应该注意什么 如果更改数据库上的排序规则
  • 需要有关奇怪的 java.net.HttpURLConnection 行为的帮助

    我正在尝试使用 HttpURLConnection 下载 jpg 但遇到了一个非常奇怪的错误 这是网址 http www vh1 com sitewide promoimages shows m my antonio video super
  • 如何在 angularjs 中添加悬停元素的延迟?

    我有一个元素 span Hover Me span div class outerDiv p Some content p div class innerDiv p More Content p div div 这是JS mouseente
  • 即使安装包后,R 也找不到包

    我一直与zoo包 我很久以前就安装了 今天 我创建了一个新的 R 脚本 并运行library zoo 并得到以下错误 gt library zoo Error in library zoo there is no package calle
  • 暴力破解 PBKDF2 的速度大约有多快?

    在 linkedin 密码哈希泄露之后 我一直在研究我们的密码哈希 我们使用 Django 1 4 它使用 PBKDF2 这很棒 比之前的 SHA1 更进一步 然而我很好奇人们如何轻松地暴力破解这一点 我正在查看我们的密码复杂性规则 并且想
  • 使用 ES6 类的快速路由

    因此 以下代码在开发中有效 但在生产环境中运行时失败 并出现错误TypeError Router use requires middleware function but got a Object 到目前为止 我一定已经尝试了大约一百种不同