Ich habe ein altes Testprojekt ursprünglich mit Express 2.X gebaut. Ich ziehe es nach Express 4.x und versuche, Babel 6.x einzufügen, um mit ES6-Features serverseitig zu experimentieren.Import/Export des Express-Routers mit ES6 Import + Export Schlüsselwörter und Babel
Das Update auf Express 4.x ging in Ordnung. Die ursprüngliche App funktioniert gut. Die Probleme treten auf, wenn ich anfange, ES6-Eigenschaften hinzuzufügen.
Insbesondere möchte ich alle require
und module.export
Anweisungen mit ES6 import {...} from...
und export {...}
ersetzen.
Problem: Ich kann anscheinend keine Routen von externen Dateien in die Hauptdatei app.js
importieren.
Meine app.js
Lasten Routen wie so:
import { indexRoute } from './routes/index_route';
app.use('/', indexRoute);
Innen index_route.js
ich habe:
"use strict";
import express from 'express';
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index_view', { title: 'Express' });
});
export { router }
Dieser Quellcode für Babel in Ordnung ist, aber Knoten beschwert sich beim Start:
Router.use() requires middleware function but got a undefined
Ich habe zwei Dateien wie index_route.js
, jeder für ag roup von Routen, und AFAIS sie beide importieren + modifizieren + exportieren das gleiche Router-Objekt. In jedem Fall gibt der Export + Import unter Verwendung von ES6-Schlüsselwörtern undefined
zurück.
Was mache ich falsch? Verwende ich die ES6-Schlüsselwörter für die falschen Objekte? Verwende ich veraltete Anweisungen, um die Routen innerhalb von app.js
zu konfigurieren?
Die Namen Ihrer Import und Export sind nicht korrekt. Versuchen Sie 'import {router} von './routes/index_route';' – Achrome