文档章节

【NodeJS】学习笔记和参考资料

岑小白
 岑小白
发布于 2012/09/17 14:01
字数 1064
阅读 282
收藏 2

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 教程篇|>>----------------------------------------------------------------------------------------------------

【官方网站】好吧,阅读英语文档能力强的直接入

http://nodejs.org/about/

【入门教程】从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版本

image

【使用运行】

安装之后,建立文件夹,编写测试js文件,cmd 进入包含测试js文件的文件夹,运行

cd e://test/nodejs/example.js  //进入测试文件所在文件夹

node example.js                //执行该js脚本

© 著作权归作者所有

共有 人打赏支持
岑小白

岑小白

粉丝 134
博文 187
码字总数 300648
作品 0
杭州
其他
私信 提问
一文总结学习 Python 的 14 张思维导图

本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库,后续会发布相应专题的文章)。 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列...

马哥教育
2017/10/20
0
0
back propogation 的线代描述

参考资料:   算法部分:     standfor, ufldl : http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial     一文弄懂BP:https://www.cnblogs.com/charlotte77/p/5629865.htm......

pertinence
2018/12/06
0
0
我的Python3萌新入门笔记

我的Python3萌新入门笔记 Python自动化运维2017-12-128 阅读 Python教程 先来个镇楼图! Python3萌新入门笔记是一系列真实的自学笔记。 当然,它也是比较全面的入门教程。 到上一篇笔记为止,...

Python自动化运维
2017/12/12
0
0
学习 Python 的 14 张思维导图

本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库)。 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条...

天星ing
2017/10/18
0
0
Spring.NET学习笔记——目录(原)

目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔记2——环境搭建(基础篇) Level 200 Sprin...

长平狐
2012/06/11
913
1

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink的KvStateRegistryGateway

序 本文主要研究一下flink的KvStateRegistryGateway KvStateRegistryGateway flink-1.7.2/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/KvStateRegistryGateway.java pu......

go4it
20分钟前
2
0
Java springboot B2B2C o2o多用户商城 springcloud架构 (十四)在springboot中用redis实现消息队列

准备阶段 安装redis,可参考我的另一篇文章。 java 1.8 maven 3.0 idea 环境依赖 创建一个新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖: <dependency> ...

itcloud
26分钟前
1
0
云计算的2018年都有什么变化?

2018 年,区块链(Blockchain)在技术圈的风头一时无两,连此前大红大紫的人工智能(AI)都稍逊风骚,云计算圈则奋十年之余烈,完善产品,深耕行业,让越来越多的行业客户接受和实施云计算。回顾...

linuxCool
26分钟前
4
0
[activiti6]调用WebService几个坑

[activiti6]几个报错解决 运行test webservice org.activiti.engine.ActivitiException: no default process engine availableat org.activiti.engine.impl.test.PluggableActivitiTestCas......

Danni3
31分钟前
1
0
一张图看懂SQL的各种Join用法

下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。 具体分解如下: 1、INNER JOIN(内连接)   SELECT FROM Table_A AINNER JOIN Table_B BON A.Key = B.Key 2、L......

dragon_tech
55分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部