了解Nodejs文档

我可能在想,但是我无法消化Nodejs文档。 我是新来的JavaScript和来自Java背景。

我的问题不是关于任何具体的nodejs函数只是全面的理解。 下面我举了一个我想了解的例子

当使用像Java这样的静态types语言时,非常清楚方法调用需要什么types。 一个简单的例子,如果我想sorting一个int的数组我可以看看Arrays.sort ,看看它需要一个int [](其他types也一样)。 我也可以看到它返回无效。

public static void sort(int[] a) 

但是,javascript是一种dynamic语言,因此没有types的API调用。 以encryption模块为例

 crypto.pbkdf2(password, salt, iterations, keylen, callback) Asynchronous PBKDF2 applies pseudorandom function HMAC-SHA1 to derive a key of given length from the given password, salt and iterations. The callback gets two arguments (err, derivedKey). 

所以,如果不出去查找示例代码,或者查看nodejs源代码,我怎样才能知道函数的参数types? 我意识到可以通过查看名称(即callback函数types)来派生types,但有没有其他方法?

例如,文档说callback得到两个参数err和derivedKey。 derivedKey的types是什么,types或err是什么? 我错过了关于文档的东西吗? 你怎么知道你是否通过了正确的types?

注意:我已经知道了derivedKey和err的types是什么,所以我不需要像“derivedKey is ….”这样的答案。我的问题是关于来自静态types语言的人的Nodejs文档的整体理解,不特定于crypto.pdkdf2。

那么你几乎是在思考。 如果没有明确解释,你将不得不猜测大部分。 就像你可以猜测迭代和keylen是数字而不是string。 当NodeJS认为你不能猜测的时候,NodeJS会明确地解释参数,或者你必须知道更多的信息。 像在crypto.createCredentials(details)他们解释说,细节是一个字典,你需要使用哪些键。 Fi的情况下err和derivedKey,因为没有明确的信息,我会假设都是string。 如果事实certificate他们不是,我会console.log他们在callback函数,看看他们是什么。

如果文档中logging了所有参数的types,但是不知道是否值得这个function,文档可能会更加清晰。

我有一些C#和Java的经验,并已经编写了JavaScript大约一年,所以我可能能够框架。

对象

JavaScript的一个方面就是可以当场制作这样的对象:

 var options = { name: "something", age: 9, what: function() { return 8; } }; 

每个人都利用这一点,所以理解JavaScript库是一个关键。

您也可以采取上述options对象,然后像这样去:

 options.mood = "ok"; 

换句话说,对象只是属性的捆绑,而没有设置结构。 你可以像for ... in循环一样使用语言结构来遍历它们。 也就是说,像err这样的事物的“types”基本上是一个关联数组。

callback

callback基本上是无处不在,所以问题就是如何处理它们。 一个常见的模式是function (err, maybeSomething) 。 大多数情况下,你只关心err是不是“某事”。 那就是,你会这样做很多:

 if (err) { ... } 

坦率地说,我做了很多console.log(err)来查看我在开发过程中得到的结果。

之后,这是真正的文件。 其中一些比别人好。 你不是真的错过了什么。 关于唯一的“诀窍”是有时一个文档将解释顶部的所有内容。

你会发现自己有时候会find一个图书馆在做什么,但有97%的时间通过一些快速的猜测和检查来让你感动。