天天看点

node.js复习(1)

node.js开发服务器,数据、路由。本地关心的是效果和交互。

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

单线程,Non-blocking I/O , Event Driven。实际上这也可以算作一个特点。

首先,Node不为每个用户开辟一个线程,所以非常极端的采用了单线程。单线程,要照顾所有的用户,那么就必须有非阻塞I/O,否则一个人的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容器,安装配置完成之后,没有一个根目录。

下面是使用web storm

node.js复习(1)

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

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

server.listen(80, "127.0.0.1");      
// 01复习
var http = require("http");
var fs = require("js");

//创建服务器
var server = http.createServer(function(req,res){
    //每次接收请求之后做的事情
    res.end("SUCCESS!!!");
});
server.listen(3000, "127.0.0.1");      

如果是中文,记得设置响应头 utf-8

// 01复习 最简单的创建http服务器
var http = require("http");
var fs = require("fs");

//创建服务器
var server = http.createServer(function(req,res){
    //每次接收请求之后做的事情
    //设置响应头
    res.writeHead(200,{"Content-type":"text/html;charset=UTF8"});
    res.write("<ul>");
    res.write("<li>哈哈</li>");
    res.write("<li>哈哈</li>");
    res.write("</ul>");
    
    res.end("成功");
});
server.listen(3000, "127.0.0.1");      

继续阅读