我有一個最初使用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