我对 NodeJS 的基本语法有疑问,请问需要语法。
在这个存储库中,
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');
。
它会抛出异常,
类型错误:路由器不是构造函数。
它不再起作用了。
所以我的问题是 {variable} 是什么意思?
感谢您的宝贵时间。
最佳答案
行 var {Router} = require('director');
正在利用 ES6 object destructuring .等效的行是 var Router = require('director').Router;
。 director
模块导出一个对象,该对象具有名为 Router
的属性。解构只是声明一个名为 Router
的变量并使用同名对象属性的值对其进行初始化的简写方式。
更新:更改了 object destructuring link指向更好的引用。
要查看此操作的示例,请使用 Babel's 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
关于javascript - 基本 NodeJS 需要语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532868/