【发布时间】:2013-05-06 05:06:35
【问题描述】:
就像其他人一样,我似乎已经开始使用 node.js 和 Express 框架了。
虽然我对客户端 Javascript 相当有信心,但我当然严重依赖 JQuery,但我对 node.js 的玩弄很大程度上暴露了我对 Javascript 的实际工作原理缺乏正确的理解。因此提出了这个问题。
我看到的每个教程,包括 Holowaychuk 先生自己的教程,都做这样的事情:
var express = require('express'),
app = express();
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use('/images', express.static(__dirname + '/public/images'));
app.get('/', <do something>);
app.get('/:something', <do something else>)
app.listen(3000);
如果我正在为客户端 Javascript 编写类似的东西,我会很想只引用一次 app 对象并链接任何函数或方法,从而产生这个:
var express = require('express'),
app = express();
app.use(express.methodOverride())
.use(express.cookieParser())
.use('/images', express.static(__dirname + '/public/images'))
.get('/', <do something>)
.get('/:something', <do something else>)
.listen(3000);
所以我的问题是:这两者在功能上是否不同?我是否冒着惹恼异步之神的风险?
我们将不胜感激地收到任何名为“仅仅因为您使用过 JQuery 并不意味着您了解任何关于 Javascript”的帮助和教程链接。
【问题讨论】:
-
只要
use、get、listen返回原来的app就可以了。链接与 jQuery 一起工作的原因是因为 jQuery 方法总是(在大多数情况下)返回原始选定元素集合 -
谢谢@Ian。这是有道理的,链式版本似乎与非链式版本一样好用。我仍然怀疑我见过的许多 node.js/Express 教程和示例都没有以这种方式使用链接。
标签: javascript node.js asynchronous express chaining