标签:node.js nodejs debug express npm
Node.js这个名字并不陌生。刚开始时,以为又是某个团体搞的JS类库。作为jQuery忠实追随者,当时还是比较关注这个异端的出现。后来发现,其实是服务器端的JS。用了J2EE那么多年了,没有心思再去搞这一套。还不如深入写下J2EE的架构什么的。而技术的革新的风暴还是席卷了整个IT界。鄙人再次了开启学习天赋。
下载地址(详见官方博客:http://blog.nodejs.org 更新):
http://nodejs.org/dist/v0.11.15/node-v0.11.15-x86.msi(32位)
http://nodejs.org/dist/v0.11.15/x64/node-v0.11.15-x64.msi(64位)
记住你的安装路径。鄙人的路径是D:\Program Files\nodejs(对于安 装路径不同的话,接下来涉及到的路径请自行脑补)
安装完毕后,和绝大多数的开源产品一样你得配置环境变量。
查看“系统变量”,应该有 "D:\ProgramFiles\nodejs;"。
查看“用户变量”,有“C:\Users\pc\AppData\Roaming\npm”。
没有的话自行加上。
打开“所有程序”,打开“Node.js command prompt”。
Win8 环境的话 "Win+ R" 打开命令运行窗口。贴入下面命令也是一样的。
C:\Windows\System32\cmd.exe/k "D:\Program Files\nodejs\nodevars.bat"
最好写个bat文件放桌面免得麻烦。打开之后应该能看到一个黑屏如下:
他会告诉你,你的Node.js和Npm(Node Package Manager)工具已经安装好了。接下来Npm就是主角了。这东西相当于Java界中的Maven之类的角色,也就是包管理。有用过Maven的同学会觉得很亲切。弊端就是依赖网络。下小节会细讲这块。
环境弄好了就赶紧写个Hello World 来庆祝一下吧。
var http =require("http"); http.createServer(function(request,response) { response.writeHead(200, { "Content-Type":"text/plain" }); response.write("Hello World"); response.end(); }).listen(3000); console.log('Serverrunning at http://127.0.0.1:3000');
控制台显示:
访问一下就能看到Hello World 了。
Npm,node包管理器。顾名思义就是帮我们下载类库的。在正式开讲之前先检查下各自的网络配置。鄙人长时间呆在内网环境。对于有网络依赖的项目第一时间想到的是设置代理。还有就是坑爹的GFW。下面两句配好npm的代理。
npm config set proxy=http://127.0.0.1:8087 npm config set registry=http://registry.npmjs.org
接下来安装一个开发方面比较重要的包—supervisor。
安装命令:npm install supervisor -g
出现上面信息且没有其他报错的话("304"状态码是因为我已经装过了)。supervisor就算装好了。npminstall [包名称] 这个命令是npm中最常用的命令。默认是安装在当前路径,加上-g参数表示安装到全局。
安装到当前路径,包会下载到node_modules文件夹里。
安装到全局会放公用路径,如鄙人的:C:\Users\pc\AppData\Roaming\npm\node_modules
全局包供所有项目都能使用,一般不做修改。如果对某个包有修改需求的话就不要放在全局域上了。还有一个插件式特性。如果不想通过网络下载的话,可以通过直接拷到node_modules目录下就行了。
话分两头,包管理这块先讲这么多。回头看看supervisor,为什么那么重要呢?接着往下看,supervisor相当node.js中的热部署插件。不装这个插件的话,每次修改都需要重启项目。supervisor其实就是个监控程序,每当你改了文件他就帮忙自动重启。
还是用我们刚刚写过的hello_world.js。把欢迎辞封装到函数里。
var http = require("http"); http.createServer(function(request, response) { response.writeHead(200,{ "Content-Type":"text/plain" }); response.write(doSomething()); response.end(); }).listen(3000); console.log('Server running at http://127.0.0.1:3000'); function doSomething(){ return 'hello world!'; }
然后执行supervisor hello_world.js。如下图所示,控制台告诉我他已经在监控我的项目了。
然后我把欢迎辞改改。
function doSomething(){ return 'Hi! Jack!'; }
再看看控制台和浏览器。果然帮我们重启了。这才是程序界的雷锋同志啊!
工欲善其事必先利其器。程序员最大厉害的技能就是抓Bug了。调试工具继热部署后成为鄙人第二个关注点。网上的教程很多,鄙人较为倾向于node-inspector调试工具。JavaScript本来就是一家,怎么忍心使用两种调试方式呢?Chrome V8 为我们提供了平台。
安装命令:npm install node-inspector -g
下载的东西有点多做好网速准备。这个包约为14.2 MB。不再赘述。
装好后调试我们的hello_world.js。执行node --debug hello_world.js
然后再另开一个命令行窗口,执行node-inspector
会提示我们去访问:http://127.0.0.1:8080/debug?port=5858
用chrome打开 http://127.0.0.1:8080/debug?port=5858
会发现一个熟悉的界面。样子和功能跟前端JS调试基本一致。
可能是因为使用的版本太高调试器只是部分功能兼容。
当前node-inspector的版本为:Node Inspector v0.8.3
千呼万唤始出来,node.js唯一推荐官方框架express。此框架一出让我们轻松告别hello world 时代,一秒变得高大上。
安装命令:npm install express -g
npm install express-generator -g
安装好后,进入workspace新建一个名为node.express的项目。
执行:express node.express
生成express项目基本文件
进入node.express路径,执行:npm install
解决包依赖。express项目就基本搭好了。是不是觉得幸福来得太突然还没准备好呢?不得不说官方推荐的框架还是有花心思去做的。
执行:npm start
启动项目。
查看目录下的package.json 文件。可以看到express的入口为./bin/www文件。npm start 等同于 node ./bin/www。
{ "name": "node.express", "version": "0.0.0", "private": true, "scripts": { "start": "node./bin/www" }, "dependencies": { "body-parser": "~1.10.1", "cookie-parser":"~1.3.3", "debug": "~2.1.1", "express": "~4.11.0", "jade": "~1.9.0", "morgan": "~1.5.1", "serve-favicon":"~2.2.0" } }
知道这个可以方便我们进行热部署。执行:supervisor ./bin/www
万分感谢能看到这里的童鞋。上面的内容基本涵盖了Node.js的入门内容。Node.js 作为一门新兴的语言。其特有的异步机制将优化我们的页面的加载速度和接口服务。预知后事如何,且听下回分解。
标签:node.js nodejs debug express npm
原文地址:http://blog.csdn.net/coding_my_future/article/details/42985229