喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

Node.js小教程(二)--I

作者:Takk...
由于开学期间学校放假喜怒无常,我的这篇更新就在这时开始写了~#14x (一)(目录部分及安装和hello world):https://www.gn00.com/t-410081-1-1.html 本期容量还是比较小。。会解释前面的那个hello world并介绍一些小特性。 (关于NPM的安装我是想放到下一期)
前面的那个hello world估计会有点小迷茫,那么我就来解释下下~ 先把代码贴出来: [mw_shl_code=javascript,true]var http = require('http'); server = http.createServer(function (req, res) { res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello Takk...\n"); }) server.listen(8000); console.log("httpd start @8000"); [/mw_shl_code] 这串代码我们先来解剖一下,抛开http.createServer后面括号的那个匿名函数,我们剩下的这串代码其实就是一个创建服务器的完整的过程,是这样的: [mw_shl_code=javascript,true]var http = require('http'); server = http.createServer( ); server.listen(8000); console.log("httpd start @8000");[/mw_shl_code] 专业解释: 第一行: 是请求(require)node.js自带的node.js模块,并赋值给变量http。 第二行:然后我们调用了http模块提供的函数creatServer这个函数会返回一个对象,把这个对象赋给了server 第三行:我们用了这个对象的一个方法(listen),这个方法有一个参数,指定监听哪个端口; 第四行:用console.log向控制台输出了一句话httpd start @8000; /------------------------- 童话解释: 这么一连串的到底是一个什么工作呢?打个比方吧。 Node.js有一个魔法图书馆,我们去找到(require)了'http'这本法术书,然后我们把这门书的内容抄到(=)了一本我们自己的法术书书上,并把这本书的名字也叫做http(第一行) 然后呢,然后呢我们派我们的一个小朋友server去学了http这本书里面的createServer这个魔法 也就是说,现在server这个小朋友会了http这本书中createServer里面的魔法。(第二行) 而这个魔法中有一个本领是监听,我们让这个server小朋友施展了下监听的魔咒listen(这个魔咒可以监听一个端口) 并且把这个魔咒指定了去监听(8000)这个端口(什么是端口?大概就像是一扇门吧,也就是说让server去看住了8000这扇门。);(第三行) 最后一行是电脑告诉你,我们已成功看住了了8000这个端口~ 通过这么几行代码,会启动一个侦听8888端口的服务器,它不做任何别的事情,甚至连请求都不会应答。只会看着这个端口。 /------------------------ 然后我们来看看那个匿名函数吧。 这个函数是作为creatServer方法的第一个也是唯一一个参数存在 也就是说在node.js里面可以使用一个函数作为另一个函数的参数函数和其他变量一样可以传递 /-------------------------------- 比如下面这个例子: [mw_shl_code=javascript,true] function say(word) { console.log(word); }//定义一个函数say,有一个叫做word的参数,这个函数的作用是把word输出 function dofunc(someFunction, value) { someFunction(value); } /* 这里也定义了一个函数 我们发现这个函数的第一个参数其实是一个函数(通过后面的内容可以看出) 然后我们可以发现,这个函数的作用是将第二个参数作为第一个参数参数来运行一次 */ dofunc(say, "Hello"); /* 最后这句话是用了dofunc函数 这个函数的第一个参数为say函数,第二个参数为一个字符串'Hello'; 你可以想得到,这个等价于say('Hello') */ [/mw_shl_code] /-------------------------------------- 那个匿名函数的内容是: [mw_shl_code=javascript,true] function (req, res) { res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello Takk...\n"); [/mw_shl_code] 我们可以发现,当这个函数被触发时传入了有两个参数 第一个这里取名叫做req,第二个在这里取名字叫做res 这两个都是对象,我这样取名其实是两个英文的缩写(request 和 response ) 也就是说一个是请求的处理,和响应的处理(由于hello world中我只用输出内容所以没用到req) 我们用这个匿名函数干了什么呢? [mw_shl_code=javascript,true]server = http.createServer(function (req, res) { res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello Takk...\n"); })[/mw_shl_code] 这句话我来翻译下,用http的createServer方法给创建了一个服务器 这个服务器被请求时会响应 响应方法是 [mw_shl_code=javascript,true] res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello Takk...\n"); [/mw_shl_code] 代表的意思是,给浏览器一个200的头文件 然后结束时给浏览器响应一句话,"Hello Takk...\n" 所以所以我们请求这个服务器时他们给我们回了这句话。。
本期的教程也许有点枯燥 不过我们解释了helloworld这个例子的源码,并且了解了下函数作为参数来传递 如果看着很迷糊呢不要紧~可以在帖子后面问,我会给大家详细解答~ 我的qq是:945959236,大家可以一起学习·~ 而且这些后面慢慢就懂了,现在迷糊点不是有很大的问题~ 下一期我会手把手教大家建立一个网站~会让你很哟成就感,而且,相信我,你会有乐趣的。 在实践中知识就慢慢懂了~ 那么这期就这样~~~66!

回复

期待楼主写下去

作者:Takk...
基叔 发表于 3 天前 支持 nodejs,期待楼主写下去
上周末有点事,开学了好多活动~
查看回复

支持 nodejs,期待楼主写下去

作者:基叔
支持 nodejs,期待楼主写下去
查看回复

[i=s] 本帖最后由 GRzhan 于

作者:GRzhan
[i=s] 本帖最后由 GRzhan 于 2013-9-11 23:06 编辑
Takk... 发表于 2013-8-31 15:48 我的这个会有点慢呢。。。。
后端的东西大概不会用nodejs,所以就跟着贴子看看了解下:)
查看回复

看来似乎我在前一个教程脑补了这一个教程的内

作者:Takk...
GRzhan 发表于 2013-8-31 15:26 看来似乎我在前一个教程脑补了这一个教程的内容。。。 继续关注LZ的nodejs的教程 ...
我的这个会有点慢呢。。。。
查看回复

[i=s] 本帖最后由 GRzhan 于

作者:GRzhan
[i=s] 本帖最后由 GRzhan 于 2013-8-31 15:27 编辑 看来似乎我在前一个教程脑补了这一个教程的内容。。。=367= 继续关注LZ的nodejs的教程
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU