因此,以下代码在开发中有效,但在生产环境中运行时失败,并出现错误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"
}