2015-12-28 25 views
5

require işlev çağrısı en kısa ES6 karşılığı nedir?Node.js ES6 eşdeğeri işlev çağrısı gerektiriyor

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

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

Diğer bir deyişle, ES6 modüllerinde bir tek liner eşdeğeri var mı? ./routes varsayarak bir şey ihraç bir ES6 modülüdür ...

import * as routes from './routes'; 

:

cevap

5

Sadece ES6 eski defterleri başladım fakat bunun böyle olacağını şey inanıyoruz.

Bu

sonra şöyle derhal kullanılabilir: modülü yalnızca tek adlandırılmış ihracat sahiptir

import * as routes from './routes'; 

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

ise, ithal etmek iki satır hala, o zaman çağrı:

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

budur ihracatın herhangi bir sayı için aynı:

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

daha iyi bir ithalat yukarıda yazıldığı gibi:

import * as routes from './routes'; 
routes.foo(); 
routes.bar(); 
Ben ES6 modüllerine ilişkin, ancak modül ithalat beyanı farklı görünebilir ihracat şeye bağlı this Axel Rauschmayer post itibaren "tavsiye" biçimini kullandı: 'fs' dan fs olarak *

ithalat; // recommended

Bunu (1 satır içe aktarma, 1 satır çağırmak için) sözdizimi açık ve okunabilir buluyorum, bu yüzden beğendim. Bazıları için talihsiz görünebilir. Bununla birlikte, en alt satır, yalnızca içe aktarılan there is no one line import/invoke in ES6

+0

. İçe aktarılan işlevi satır içi çağırmak istiyorum. – krl

+1

Üzgünüz, sorunuzu yanlış anladım. Sözdizimini iki kez kontrol edeyim ve daha fazla güncelleme yapıp yapamayacağımı göreyim. – rockerest

+0

Evet, dolayısıyla ES6 modüllerindeki 2 satıra ve Node.js. 1 satırına '' ('...')() 'diyelim. Tek liner var mı? – krl