javascript - 基本 NodeJS 需要语法

标签 javascript node.js

我对 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/

相关文章:

javascript - 如何发出get请求来检索elasticsearch集群中某个索引的最新文档?

javascript - 快速服务器并发

node.js - 索引在Elasticsearch中创建成功,但docs.count变为0

node.js - 将 .npmrc 文件添加到 Angular 项目

node.js - 当我尝试对服务器进行 AJAX 调用时,某些网络超时

javascript - 在设备的默认浏览器中打开链接。人行横道安卓应用

javascript - json 在 Angular 中不起作用

javascript - 如何在不使用 for 循环的情况下在 jQuery 中同时删除多个 tr

node.js - 如何拒绝某些用户加入socket.io中的同一房间?

javascript - 更新函数 javascript 和 mongodb