码迷,mamicode.com
首页 > Web开发 > 详细

[读书笔记]了不起的node.js+实践(一)

时间:2014-07-06 13:59:57      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   使用   strong   

  环境的变化带来了技术大跃进,机遇和挑战同时到来。基于我js也没有学,只好赶鸭子上架一起学了。(>﹏<)

bubuko.com,布布扣

1.先读读书

  一开始就不知死活地看《深入浅出node.js》,弄得团团转,看完才知道这本书是要一定基础的。在网上搜刮到了41页的《node入门》,自己学着搭建了一个Web应用。并且在刷新成就感后,就抱读《了不起的node.js》。现准备看完这本书后再回读《深入浅出node.js》。

2.搭建环境 运行git上的例程(3次报错)

  在官网下载msi后,一路next。输入命令npm install时,报错"npm ERR! not found: git"。原因是新电脑没有按照git。

  安装外部依赖包时,报错"gyp ERR! configure error",原因也是Python环境没有。而且这个依赖包只能在低版本下安装。最后一次报错是"MSBUILD:error MSB3428:未能加载Visual C++组件"VCBuild.exe"",在安装.net framework 2.0 SDKmvs2005后还是报错。果断弃了。

3.第一个Web应用

  在运行完"Hello World"后,开始编写一个完全基于NodeWeb应用。首先需要启动服务器模块,http模块中的createServer函数返回的对象有一个listen([PORT])方法监听端口。这个函数的参数很奇怪,是一个函数定义。JavaScript中,一个函数可以作为另一个函数接收一个参数,参数函数就叫匿名函数。而使用这种方法的原因是node采用了事件驱动回调。当服务器在单进程接收到一个请求时,就会调用这个函数来处理这个请求。当有相应的事件发生时,createServer函数就调用这个函数来回调。bubuko.com,布布扣

  在完成接收http请求后,我们就要处理请求了。首先,我们抽象地把请求提出不同的URLGET、POST参数。这里用到了两个内部模块URL(解析URL)、Query String(处理查询字符串)。并且通过依赖注入的方式把router模块添加进去。接着,需要完成处理请求的模块,才完善路由。请求先全部通过一个对象(handle)进行模块间的传递,并让处理程序能做出响应。一般来说,让请求处理程序通过onRequest函数直接返回(return())他们要展示给用户的信息。不过,在进行阻塞操作时会非常耗时,所以我们要使用非阻塞操作使用回调,通过将函数作为参数传递给其他需要花时间做处理的函数。相比采用将内容传递给服务器的方式,我们这次采用将服务器“传递”给内容的方式。就是将response对象(从服务器的回调函数onRequest()获取)作为函数参数通过路由传递给处理程序。这样,处理程序就可以调用该对象上的函数。

  接下来再进行处理环节,通过表单来上传图片,这里用到了外部依赖包formidable。而保存文件则使用了fs模块。展示图片则十分简单response.write(file, ??"binary")

 

 

 

  

[读书笔记]了不起的node.js+实践(一),布布扣,bubuko.com

[读书笔记]了不起的node.js+实践(一)

标签:style   blog   http   java   使用   strong   

原文地址:http://www.cnblogs.com/edwardstudy/p/3818490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!