1.Nodejs入门-----简介

 


特点:Node.js uses an event-driven, non-blocking I/O model that makes it lightweightand efficient. 

 



 

 


Node.js安装

Node.js和Java非常像,跨平台的。不管是Linux还是windows编程是完全一致的(有一些不一样,比如路径的表述)。Linux版本的Node.js环境和windows环境是不一样的,但是编程语言一样。很像Java虚拟机。

 

我们学习的是最新版,2015年9月19日最新版本4.1.0。

安装包的大小只有10M不到,真的就是一个小玩具。

 

装完之后,我们在系统的环境变量里面,我们看一下:


环境变量,就已经自动的填写进去了,就是我们node安装的目录。

什么叫做环境变量?就是在系统的任何目录下,都能运行c:\programfiles\nodejs里面的程序。

在cmd中,输入node -v就能够查看nodejs的版本。你会发现,我们现在的盘符,不在安装目录下,但是也能够运行,这就是因为有系统环境变量。系统的环境变量已经有了c:\program files\nodejs了,所以,这个文件夹中的node.exe就能够在任何盘符运行。

 

运行文件,就要用node命令来运行:


1           node 路径名

推荐,不要使用完整的路径名,而是通过先进入案例文件夹,然后node相对地址

cd /dc:\nodedemo命令,就是change directory的缩写,表示更改当前目录。

 

Node.js是服务器的程序,写的js语句,都将运行在服务器上。返回给客户的,都是已经处理好的纯html。

1           //require表示引包,引包就是引用自己的一个特殊功能

2           var http = require("http");

3           //创建服务器,参数是一个回调函数,表示如果有请求进来,要做什么

4           var server = http.createServer(function(req,res){

5                  //req表示请求,request;  res表示响应,response

6                  //设置HTTP头部,状态码是200,文件类型是html,字符集是utf8

7                  res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});

8                  res.end("哈哈哈哈,我买了一个iPhone" + (1+2+3) + "s");

9           });

10        

11       //运行服务器,监听3000端口(端口号可以任改)

12       server.listen(3000,"127.0.0.1");

 

如果想修改程序,必须中断当前运行的服务器,重新node一次,刷新,才行。

ctrl+c,就可以打断挂起的服务器程序。此时按上箭头,能够快速调用最近的node命令。

 

你会发现,我们本地写一个js,打死都不能直接拖入浏览器运行,但是有了node,我们任何一个js文件,都可以通过node来运行。也就是说,node就是一个js的执行环境。

我们现在,要跑起来一个服务器,这个服务器的脚本,要以.js存储。是一个js文件。用node命令运行这个js文件罢了。

 

Node.js没有根目录的概念,因为它根本没有任何的web容器!

让node.js提供一个静态服务,都非常难!

也就是说,node.js中,如果看见一个网址是

1           127.0.0.1:3000/fang

别再去想,一定有一个文件夹,叫做fang了。可能/fang的物理文件,是同目录的test.html

URL和真实物理文件,是没有关系的。URL是通过了Node的顶层路由设计,呈递某一个静态文件的。


Node.js实际上是极客开发出的一个小玩具,不是银弹。有着别人不具备的怪异特点:

单线程、Non-blockingI/O、Event Driven。 实际上是一个特点。

首先,Node不为每个用户开辟一个线程,所以非常极端的选择了单线程。单线程,要照顾所有的用户,那么就必须有非阻塞I/O,否则一个人的I/O就把别人、自己都阻塞了。一旦有非阻塞I/O,一个人如果I/O去了,就会放弃CPU的使用权,换成另一个人使用CPU(或者执行此人后面的语句)。所以CPU的利用率100%。第一个人I/O结束了,就要用事件来通知线程,执行回调函数。此时必须有事件环,就有一个排队调度机制。Node中有超过半数的C++代码,在搭建事件环。

 

Node.js和别的老牌3P不一样:

1) 没有自己的语法,使用V8引擎,所以就是JS。V8引擎解析JS的,效率非常高,并且V8中很多东西都是异步的。Node就是将V8中的一些功能自己没有重写(别人做了,自己就站在巨人肩膀上),移植到了服务器上。

2) 没有web容器,就是安装配置完成之后,没有一个根目录。



命令提示符所在路径太重要了,因为程序中的所有相对路径”./”,都是相对这个命令提示符路径的,而不是相对于js文件自己。

系统中,80端口,就是默认http端口。所以当没有端口号的时候,就是80端口。

1           server.listen(80,"127.0.0.1");

 




 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值