NODE JS 笔记篇|>>----------------------------------------------------------------------------------------------------html
一、相关基础命令行操做
java
Install express npm install -g express Create a new app express your_app cd into app directory cd your_app use npm link to resolve modules npm link express Set NODE_PATH=NODE_HOME\node_modules https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x renamed app.register() to app.engine()
二、Node和npm在 Mac 中的默认安装目录
node
Node was installed at /usr/local/bin/node npm was installed at /usr/local/bin/npm
Make sure that /usr/local/bin is in your $PATH.
git
三、阻塞与非阻塞
github
下面的代码中,当函数start()被调用的时候,Node.js会先等待10秒,以后才会返回“Hello Start”。express
当调用upload()的时候,会和此前同样当即返回。(固然了,这里只是模拟休眠10秒,实际场景中,这样的阻塞操做有不少,比方说一些长时间的计算操做等。)npm
接下来就让咱们来看看,咱们的改动带来了哪些变化。如往常同样,咱们先要重启下服务器。浏览器
为了看到效果,咱们要进行一些相对复杂的操做(跟着我一块儿作): 首先,打开两个浏览器窗口或者标签页。在第一个浏览器窗口的地址栏中输入http://localhost:8888/start, 可是先不要打开它!在第二个浏览器窗口的地址栏中输入http://localhost:8888/upload, 一样的,先不要打开它!sass
接下来,作以下操做:在第一个窗口中(“/start”)按下回车,而后快速切换到第二个窗口中(“/upload”)按下回车。服务器
注意,发生了什么: /start URL加载花了10秒,这和咱们预期的同样。可是,/upload URL竟然也花了10秒,而它在对应的请求处理程序中并无相似于sleep()这样的操做!
这究竟是为何呢?缘由就是start()包含了阻塞操做。形象的说就是“它阻塞了全部其余的处理工做”。
function start() { console.log("Request handler 'start' was called."); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } sleep(10000); return "Hello Start"; } function upload() { console.log("Request handler 'upload' was called."); return "Hello Upload"; } exports.start = start; exports.upload = upload;
四、response.write 输出格式
"Content-Type": "text/plain" // 以字符串形式插入到页面中
"Content-Type": "text/html" // 以 html 形式插入到页面中
response.writeHead(200, {"Content-Type": "text/plain"}); response.write(html); response.end();
NODE JS 资料篇|>>----------------------------------------------------------------------------------------------------
一、相关资料列表:
二、Node 开发框架 Express 资料
Express是一款基于Node.js的高性能高级Web框架。
若是你之前用过Ruby社区的Sinatra框架,你会以为Express和它的风格很像。
按照程序猿和攻城狮们的惯例,来个Hello World:
var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000);
想看文档教程神马的,请到官网:http://expressjs.com
Express的源码托管在这里:https://github.com/visionmedia/express
Express使用了Connect中间件,Connect的文档在这里:http://senchalabs.github.com/connect/
若是你想作单元测试,能够看看TDD框架Expresso:http://visionmedia.github.com/expresso/
Express可选的Jade模板引擎也挺有趣的,它和haml是亲戚,像是个HTML预编译器:http://jade-lang.com/
说到haml,你也能够了解下sass,它像一个CSS预编译器:https://github.com/visionmedia/sass.js
不过同类产品中,我更喜欢不那么激进的less:https://github.com/cloudhead/less.js
Express框架之app.js配置文件说明:http://my.oschina.net/youdoce/blog/68658
Express.js 中文入门指引手册:http://my.oschina.net/youdoce/blog/68476
NODE JS 教程篇|>>----------------------------------------------------------------------------------------------------
【官方网站】好吧,阅读英语文档能力强的直接入
【入门教程】从helloworld开始,须要必定基础知识
http://www.nodebeginner.org/index-zh-cn.html
http://my.oschina.net/maomi/blog/80388
【帮助教程】
深入理解nodejs “基于事件驱动的回调”
http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb
Martin Fowlers关于依赖注入的大做
http://martinfowler.com/articles/injection.html
《名词王国中的死刑》
译文:http://justjavac.iteye.com/blog/1604046
原文:http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
【安装教程】Windows下使用NodeJS和npm安装UglifyJS对JavaScript进行压缩或美化(参考第一二步便可)
http://www.cnblogs.com/sorex/archive/2011/12/14/2287635.html
node -v //查看nodejs版本 npm -v //查看npm版本
【使用运行】
安装以后,创建文件夹,编写测试js文件,cmd 进入包含测试js文件的文件夹,运行
cd e://test/nodejs/example.js //进入测试文件所在文件夹
node example.js //执行该js脚本