TypeError:f在Node中的Babel Transpilation之后不是函数

我有这个networking应用程序运行在节点上。 代码在ES5中。 现在我将代码更改为ES6并使用Babel Transpilation。 编译运行正常,但我在启动服务器时遇到下面的错误:

*TypeError: _routes2.default.init is not a function* 

server.js代码引用routes.js。

server.js代码:

 import express from 'express'; import routes from './routes'; let app = express(); routes.init(app); //Issue line app.set('view engine','vash'); app.listen(4000, function(){ console.log("server listening on port 4000"); }); 

routes.js代码:

 import homeController from '../controllers/homeController'; class routes{ init(app){ app.get('/', homeController.index); } } export default routes; 

转发的server.js代码:

 'use strict'; var _express = require('express'); var _express2 = _interopRequireDefault(_express); var _routes = require('./routes'); var _routes2 = _interopRequireDefault(_routes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var app = (0, _express2.default)(); _routes2.default.init(app); app.set('view engine', 'vash'); app.listen(4000, function () { console.log("server listening on port 4000"); }); 

运输的routes.js代码:

 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _homeController = require('../controllers/homeController'); var _homeController2 = _interopRequireDefault(_homeController); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var routes = function () { function routes() { _classCallCheck(this, routes); } _createClass(routes, [{ key: 'init', value: function init(app) { app.get('/', _homeController2.default.index); } }]); return routes; }(); exports.default = routes; 

为了清晰起见,我省略了许多代码。 我在这个错误上打了很多个小时。 任何帮助将不胜感激。 init函数在routes2中可用,但是错误说init不是函数。

通过运行命令node server.js启动服务器

routes.init不是一个静态的方法 ,但是你可以这样使用它。 要么创build一个typesroutes的对象,并调用init ,或者标记静态函数,如下所示:

 class routes{ static init(app){ app.get('/', homeController.index); } }