试图使用docs来理解节点功能

时间:2013-06-28 17:08:21

标签: node.js

我正在尝试与http://nodejs.org/api/util.html一起理解代码,这是我对下面显示的代码的理解

var util = require('util');

包含util模块。

这对下面的代码有一些影响,

var financeurl = function(symbols, columns) {
return util.format(
    'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s',
    symbols.join('+'),
    columns);
};

它所说的第二行,以及它后面的三行

return util.format

节点文档说,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~

util.format(格式,[...])#

使用第一个参数作为类似printf的格式返回格式化字符串。

第一个参数是包含零个或多个占位符的字符串。每个占位符都替换为其相应参数的转换值。支持的占位符是:

%s - String.
%d - Number (both integer and float).
%j - JSON.
% - single percent sign ('%'). This does not consume an argument.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~

'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s',

是第一个以格式化字符串形式返回的参数。它包含零占位符。我是对的吗?

我对下一部分感到有些迷茫,'符号'和'列'来自节点?我应该在脚本中搜索其他地方吗?我怀疑他们做的是采用特定股票的符号并加入,将它们连接到不同的列。

我对代码的解释参考文档是否正确?

1 个答案:

答案 0 :(得分:0)

节点的util.format()Variadic function - 它需要可变数量的参数。

文档指定第一个参数是包含零个或多个特殊占位符的字符串模板。其余的参数基本上被视为一个数组,字符串模板中的占位符用这些值填充,并返回结果字符串。

示例中的字符串 - http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s包含两个占位符 - 字符串末尾附近的%s。在给定的代码中,第一个占位符替换为symbols.join('+')的值,第二个占位符替换为columns的值。

join()是Array上内置的JavaScript方法,它生成一个字符串,该字符串由Array的每个元素的toString()值组成,默认情况下用逗号分隔,或者提供的String参数(' +'在这种情况下)。)

symbolscolumns不是来自Node - 它们是程序中其他位置提供的变量。您猜测symbols包含您要查询Yahoo Finance服务的股票代码符号是正确的,但columns实际上指定了您希望从服务返回的数据列。 (您可以为columns提供的值及其含义在评论的程序顶部描述。至于我如何知道这一点......我也参加了启动工程课程......: D)

您基本上是针对Yahoo Finance REST服务的请求构建了一个URL - 您可以自己使用它,通过插入该字符串模板中的值来查看该程序从中获取的内容 -

http://finance.yahoo.com/d/quotes.csv?s=GOOG&f=snj1pr - 为您提供CSV,其中包含一系列不同的值 - Google的股票代码。

http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL+MSFT&f=sp - 为您提供仅包含股票代码符号以及Google,Apple和Microsoft的每股价格的CSV。