Node.js---01、初识NodeJS和Node.js的HTTP服务器搭建

▼魔方 西西 提交于 2019-12-04 04:04:14

一、前言

    我们先从以下几个方面在大体上认识一下Node.js:

  • Node.js 是什么?==> 运行环境

    • 是一个 可以运行 并加载 ES语法的 脚本运行环境

    • JS(ES5)、ES6、Common.js 语法 ……

  • Node.js 可以加载各种模块==> 实现各种功能

  • Node.js 安装完成后会集成 核心模块,可以让 Node.js 运行一些特定的脚本,实现一些功能

    • Node.js 默认加载了 ES 语法的运行环境

    • REPL:可交互式控制台命令行 ==> 测试

  • Node.js ES 运行环境 基于 Chrome V8 引擎 ++

  • Node.js 服务器端运行

    • BOM (window) 的所有方法 无法运行

    • DOM的所有操作 也无法运行

  • Node.js 除了运行ES 语法的脚本外,还可以通过 ES 语法执行其它操作,

    • 例如 数据库访问,文件读写,缓存处理……

 二、推荐开发工具:VSCode(Visual Studio Code)

 三、Node.js的HTTP服务器搭建

    Node.js的HTTP服务器搭建可以归纳为三步:

        1、加载服务模块

            const http = require("http");

        2、创建服务器

            const server = http.createServer(function(request,response){

                ......

            });

        3、启动服务器并监听端口

             server.listen(port,callback); //port是端口号,callback是回调函数

    具体代码如下

// NODE.JS 默认对所有在环境中运行的 js 代码使用严格模式

// 加载 NODE.JS 的核心扩展模块  http  获取服务器创建对象
// 1、加载服务模块
const http = require("http");//const定义常量

// 2、创建服务器
const server = http.createServer(function(request,response){
    console.log("请求到达");
    response.writeHead(200,{//响应头
		"Content-Type":"text/html;charset=utf-8"//中文编码
	});
    // 对于服务器的创建
    // 一个请求必有一个相应
    // 一个请求一个相应 相应结束后 需要明确的相应标识
    response.write("<h1>hello node啊<h1>");//响应
    response.end();//结束响应
});

// 3、启动服务器并监听端口
// server.listen(port,callback)
/*
    常见的服务及其默认端口
    PHP 80 
    MYSQL 3306
    javaweb 8080
    node.js  3000
*/
server.listen(3000,function(){
    console.log("正在监听3000端口");
});

    看到上段代码,作为初学者,可能会产生很多疑问。比如:

        1、第一步加载服务模块中的require是什么?

                require()是commen.js中的语法,将多个 .js 文件合并成一个 .js 文件进行运行。

                require()在node.js中叫做模块加载器。用来加载模块(.js 文件)。

        2、require(“http”)可以返回服务对象,那么这里的http到底是什么?

                http 是 node.js 的核心模块,就是一个 js 文件。

                node.js 中模块分为核心模块、扩展模块和自定义模块。

                核心模块:核心库在 node.js 的安装目录中,已经被完全打包;

                扩展模块:在Node.js 环境上 非官方开发的功能模块;

                自定义模块:自己定义的功能模块。

        3、第二步 创建服务器  const server = http.createServer(function(request,response){ ...... });为什么会进入该方法?

                http模块中已经定义了该方法,并且通过 exports 或者 module exports 方法导出该方法。

                exports 方法:导出结果是一个 JSON 对象,导出的操作实际上就是  在该对象中添加新的属性

                module.exports 方法:对象导出方式 ,是直接将 exports 对象进行新对象的替换或方法属性的替换 。

        。。。。

    代码运行: node 文件名

            控制台显示正在监听3000端口:

            

            在浏览器地址栏输入: 127.0.0.1:3000后,浏览器给出响应结果并且控制到输出请求到达

                    

 

    

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!