【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
NODE JS 笔记篇|>>----------------------------------------------------------------------------------------------------
1、相关基础命令行操作
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()
2、Node和npm在 Mac 中的默认安装目录
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.
3、阻塞与非阻塞
下面的代码中,当函数start()被调用的时候,Node.js会先等待10秒,之后才会返回“Hello Start”。
当调用upload()的时候,会和此前一样立即返回。(当然了,这里只是模拟休眠10秒,实际场景中,这样的阻塞操作有很多,比方说一些长时间的计算操作等。)
接下来就让我们来看看,我们的改动带来了哪些变化。如往常一样,我们先要重启下服务器。
为了看到效果,我们要进行一些相对复杂的操作(跟着我一起做): 首先,打开两个浏览器窗口或者标签页。在第一个浏览器窗口的地址栏中输入http://localhost:8888/start, 但是先不要打开它!在第二个浏览器窗口的地址栏中输入http://localhost:8888/upload, 同样的,先不要打开它!
接下来,做如下操作:在第一个窗口中(“/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;
4、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 资料篇|>>----------------------------------------------------------------------------------------------------
1、相关资料列表:
2、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脚本
来源:oschina
链接:https://my.oschina.net/u/565012/blog/78905