基本NodeJS需要语法

Pru*_*wee 2 javascript node.js

我有一个关于NodeJS for basic语法的基本语法的问题.

在这个存储库中,

https://github.com/alduro/generator-flux-webapp/blob/master/app/templates/src/app.js

它在第10行使用此代码:

var {Router} = require('director');

然后在第40行:

var router = new Router(routes).configure({html5history: true}).init();

这有效.

但是,如果我改变var {Router} = require('director');var Router = require('director');.

它会抛出异常, TypeError: Router is not a constructor.

它不再起作用了.


所以我的问题是{variable}是什么意思?

感谢您的时间.

btm*_*lls 7

该线var {Router} = require('director');正在利用ES6对象解构.等效的行是var Router = require('director').Router;.该director模块导出一个具有名为的属性的对象Router.解构只是一种简单的方式,用于声明一个名为变量的变量Router,并使用相同名称的对象属性值对其进行初始化.

更新:更改了对象解析链接以指向更好的引用.

要查看此操作的示例,请使用Babel的REPL进行尝试.(Babel曾经是6to5.)

有多种不同的(并且大多数是等效的)方法来完成同样的事情:

var Router = require('director').Router; // Pure ES5
var {Router: Router} = require('director'); // ES6 named destructuring
var {Router} = require('director'); // ES6 destructuring shorthand
import {Router} from 'director'; // ES6 module import
Run Code Online (Sandbox Code Playgroud)