求好心的大佬,耐心的带我看懂API文档。 以前是做c#的。node.js api 实在看不懂。懂的人教我下。
希望答主,能耐心解答一下。越全面越好,有助于我理解。
比如这里又中括号,又中括号加逗号,又是啥意思。
还有 返回参数 是一个 http.Server 的实例。 我看到代码是这样写的
var server = http.createServer();
server.on("request", function(){
console.log("收到客户端链接");
});
但是API文档里面 没有on这个函数啊, 我大概能理解 on 应该是侦听 request 这个事件,那么移除事件怎么写呢? 我该如何从API文档上面找到,除了on,还有其他的什么函数。
还有其他的API,写的参数。看着头好晕,根本看不懂写的啥
还有我明明看到API文档里某个函数里,写的有4个参数,其中最后一个参数才是 callback 函数。 可以写实例代码的时候,却是第三个参数就是 callback 函数。 我感觉还是我 API文档理解的有问题,望好心人,耐心的解答一下。。。
谢谢啦。 只要API文档理解了,我应该就可以node.js入门啦。
我是在这里看的API文档:http://nodejs.cn/api/fs.html
你需要 npm i -D @types/node
和 下载编辑器vscode,这之后在编辑器就能看到接口的接口要求,如果参数不对就会有提示了
中括号是可选参数的意思,逗号是参数分割 on的选项一般是在该类的event标签下面 剩下的就是多写多练和简单的英文能力了,比如说request.end的data明显是数据,encoding表示编码字符串,callback在js世界里指回调函数。多看示例慢慢就能懂了。
突然想起一件过往,我英语口语不好,所以都避免使用英语口语,但被别人发现了,嘲讽我node文档肯定看不懂,就问了我文档里面类或方法后面标记0,1,2是什么?由于一时不知道,顿时语塞。后来查了才知道0是标记遗弃的方法,1是标记实验性,2是稳定的。所以即使文档不是很明白,只要肯查,后天都是可以弥补的。
示例如:
request.end([data[, encoding]][, callback])
中括号是可选参数的意思,逗号是参数分割. 那么就分割成这样。
[data[,
encoding]][,
callback]
分割完了之后,怎么那么乱。 我感觉毫无规律可言。
然后,on的选项一般是在该类的event标签下面
以http为例,我并没有找到 on这个函数啊,我只看到一堆事件。 我想问的重点是,除了有 on 这个函数,还有没有其他我不知道的函数。如果有我如何在API文档中,去找。
node 的文档是所有语言 我见过最辣鸡的。。。。。 很不清晰 可以看看 微软的文档 msdn 这才是真正的 文档
@Aaron009 bar(a[,b[,c]]) 就表示如果填了b,则可以可选的传入c 但如果b都没传,c也不能传。
抄自:https://zhidao.baidu.com/question/1708473868829153660.html
@siyue543241338 同感啊。node.js api文档看着头好昏。
中括号的 [], 参数都是可选类型 url[,type[,body]] url 必填,type 不写,body 也不能写。
// 假如 API 如下
function httpRequest (url, type, body){
if(!type || type === 'get'){
//发起 url get 请求
}else if(type === 'post'){
//发起 url post 请求,需要到 body 参数
}
}
const url = 'www.baidu.com';
const body = {code: 1};
// 没有问题
httpRequest(url);
// 没有问题
httpRequest(url, 'get');
// 这样就很奇怪了,传了 url 与 body,没有 type 就会出错了
httpRequest(url, body);
// 没有问题
httpRequest(url, 'post', body);
http.createServer([options][, requestListener])
[options][
requestListener]
这个呢?难道真的是,只有我一个人看的晕?
@Aaron009 options,requestListener 都为可选参数,并没有依赖关系
我也跟着学了一波 哈哈哈 中括号的 [], 参数都是可选类型 url[,type[,body]] url 必填,type 不写,body 也不能写。
试答一下
问题1: http.createServer([option][, requestListener]) 2个参数都用中括号包着,代表2个都是可选参数 逗号用来分割参数,我想把逗号移出去会不会好理解一点
问题2: http.createServer返回http.Server的实例 http.Server继承net.Server net.Server继承EventEmitter on()就是EventEmitter提供的,可以去看看Events这一节 EventEmitter是Node.js很重要的类,很多类都是继承EventEmitter的
问题3: request.end([data[, encoding]][, callback]) 最外层2个中括号分成两部分,[data[, encoding]]和[, callback] 两部分都是可选参数,其中[data[, encoding]]里面又有一个中括号 encoding又是一个可选参数,就是说如果这一块你要传参,可以只传data不传encoding 但是要传encoding就必须先传data
所以可能情况: request.end() request.end(data) request.end(data, encoding) request.end(callback) request.end(data, callback) request.end(data, encoding, callback)
实现是这样的: (Node.js源码)
function end(chunk, encoding, callback) {
if (typeof chunk === 'function') {
callback = chunk;
chunk = null;
} else if (typeof encoding === 'function') {
callback = encoding;
encoding = null;
}
// ...
}
问题4: 理解问题3,callback是第3个参数 调用的时候却能是第1个,也能是第2个
大神我终于理解了,文档我也看懂了。 现在突然觉得以前写ActionScript3的时候,文档写的真好。至少文档里我能一眼看出来,改实例集成的是谁,总共有哪些方法。 不知道Node.js在这方面要是能优化一下,就好了。 给你们一个链接:https://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html 看看人家的文档,真心好。