我有一个最初使用Express 2.X构建的旧测试项目。我将它移动到Express 4.x并尝试插入Babel 6.x以使用服务器端的ES6功能进行实验。使用ES6导入+导出关键字和Babel导入/导出Express路由器
对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 }
此源代码是通天OK,但节点抱怨在启动时:
Router.use() requires middleware function but got a undefined
我有两个文件,比如index_route.js
,每一个都是为了ag一组路由和AFAIS,它们都导入+修改+导出相同的路由器对象。无论如何,使用ES6关键字完成的export + import返回undefined
。
我在做什么错?我是否在错误的对象上使用了ES6关键字?我是否使用过时的说明来配置app.js
内的路由?
您的进口和出口的名称不匹配。尝试'从'./routes/index_route'导入{路由器};' – Achrome