ES6相当于Node.js需要函数调用

时间:2015-12-28 20:17:44

标签: javascript node.js ecmascript-6

下面的require函数调用的最短ES6是什么?

module.exports = function(app) {...};

require('./routes')(app);

换句话说,ES6模块中是否存在单行等效项?

1 个答案:

答案 0 :(得分:5)

我刚刚开始深入研究ES6,但我相信这会是:

import * as routes from './routes';

...假设./routes是ES6模块导出的内容。

然后可以立即使用它:

import * as routes from './routes';

doAThing( routes.myVar, routes.myMethod() );

如果模块只有一个命名导出,它仍然需要导入两行,然后调用:

import { name } from './routes';
name();

对于任何数量的出口都是如此:

import { name1, name2 } from './routes';
name1();
name2();

更好的导入如上所述:

import * as routes from './routes';
routes.foo();
routes.bar();

我使用了this Axel Rauschmayer post中与ES6模块相关的“推荐”格式,但根据模块导出的内容,您的import语句可能会有所不同:

  

从'fs'导入*作为fs; //推荐

我发现这个(导入1行,调用1行)语法清晰可读,所以我喜欢它。对某些人来说,这似乎很不幸。但是,底线是there is no one line import/invoke in ES6