我有一个旧的测试项目,最初是使用Express 2.X构建的。我正在将其迁移到Express 4.x,并尝试插入Babel 6.x以实验ES6服务器端功能。
更新到Express 4.x还好。原来的应用程序可以正常工作。问题是当我开始添加ES6功能时会出现问题。
特别是,我想用ES6 import {...} from...
和export {...}
替换所有的require
和module.export
指令。
问题:我似乎无法将外部文件中的路由导入主要的app.js
文件。
我的app.js
这样加载路由:
import { indexRoute } from './routes/index_route';
app.use('/', indexRoute);
在 index_route.js
中,我有如下代码:
"use strict";
import express from 'express';
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index_view', { title: 'Express' });
});
export { router }
这段源代码对于Babel是可以的,但node在启动时报错:
Router.use() requires middleware function but got a undefined
我有两个文件,像 index_route.js
这样,每个文件用于一组路由,据我所知,它们都导入、修改并导出同一个路由对象。无论如何,使用 ES6 关键字进行的导出+导入会返回 undefined
。
我做错了什么?我在错误的对象上使用了 ES6 关键字吗?我在 app.js
中使用了过时的指令来配置路由吗?
import { router } from './routes/index_route';
。 - Achrome