美文网首页我爱编程
node.js—起一个web服务器

node.js—起一个web服务器

作者: codingQi | 来源:发表于2016-12-10 18:25 被阅读0次

    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}/`);
    });
    

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

    结果图
    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的变化。
    可搜索整合好的代码,主要用于项目
    技术问答社区 用它来解决技术的疑问,以及查询相关的资源,特别是当环境配置出现了问题,跑服务的时候报了异常等等,这些都可以找到答案。

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

    相关文章

      网友评论

        本文标题:node.js—起一个web服务器

        本文链接:https://www.haomeiwen.com/subject/jfqumttx.html