node.js—起一个web服务器

node.js概念:

简单点说Nodejs就是运行在服务端的JavaScript。

  • node. js :虽然带一个js后缀,但他实际上采用 Google Chrome浏览器,V8引擎,由c++语言编写的,本质上是一个JavaScript 的运行环境。速度非常快,性能非常好。
    往往提到js,大家就会想到浏览器中各种:
    交互组件
    异步请求 等等
  • node.js不仅仅可以解析js代码(并且也没有浏览器端安全性的控制)。
    还提供许多系统级别的API:
    1、文件的读写
    2、进程的管理
    3、网络通信 等等

话不多说,我们开始看一个很简单的小程序,来了解一下在node里http请求的过程。

demo

/**
 * Created by wangqi on 16-12-10.
 */
var http = require('http');     //1
http.createServer(function(req, res) {      //2     //4      //5
    res.writeHead(200, {
        'Content-Type': 'text/plain'
    });
    res.end('Hello World\n');              //6
}).listen(2000, '127.0.0.1');         //3
console.log('快去浏览器输入:127.0.0.1:2000');
const http = require('http');

const hostname = '127.0.0.1';
const port = 2000;

const server = http.createServer((req, res) = >{
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
});

server.listen(port, hostname, () = >{
    console.log(`Server running at http: //${hostname}:${port}/`);
});

对比两个程序,其实实现的结果都一样。
结果:

node.js—起一个web服务器_第1张图片
结果图
  1. http模块由javascript编写,职责是创建web服务器及处理http相关的任务等等。
  2. 通过createServer创建一个web服务器。
  3. 然后通过listen让服务器在这个2000端口监听请求。服务器就已经ready了,然后就能收到来自任何端口的请求了。
  4. 当请求进来的时候,我们得告诉node.js接下来要做什么,于是给createServer传入了一个匿名的回调函数。
  5. 在监听到从2000端口过来的请求以后,node.js就会来调用这个回调函数,同时给他传入两个参数,分别是请求体(req)和响应体(res)。
  • req:用来获取这次请求的相关一些信息,比如这个请求是从哪个url地址过来的、请求的类型是get还是post。
  • res:用来告诉服务器给这个请求响应一些内容,要不然请求就会一直处于挂起的状态。
  1. 最后就是给请求的客户端返回一个Hello World,同时在返回的请求头里面写入返回的状态码是200,代表的是成功,设置返回的文本内容是纯文本。

注意:如果修改了输出的内容则必须重启服务器,重新加载。在终端利用快捷键ctrl+c来中断上次服务器。
给大家推荐几个容易上手并学习nodejs的网站:

node官网查看nodejs的版本升级,新特性的加入,重要bug的修复等等,包括最近API的变化。
可搜索整合好的代码,主要用于项目
技术问答社区 用它来解决技术的疑问,以及查询相关的资源,特别是当环境配置出现了问题,跑服务的时候报了异常等等,这些都可以找到答案。

好了,就先写到这儿,后面会会逐渐更新补充的~_~渍渍

你可能感兴趣的