Node.js的Http模块和Url模块的介绍和使用及通过supervisor实现自启动

一、介绍

Node.js是一个基于Chrome V8引擎的JavaScript运行环境(runtime)
使用了一个事件驱动 非阻塞式I/O的模型 使其轻量又高效
它使JavaScript可以开发后端程序 从而实现几乎其他后端语言能实现的所有功能


二、安装及准备

官网下载安装包:https://nodejs.org/en/

直接下一步即可 傻瓜式安装
在这里插入图片描述

安装后 在cmd输入node -v 可查看当前node版本
在这里插入图片描述

VScode的智能提示:

在cmd输入:

npm install --save-dev @types/node

下载typings 下载来之后 重启一下VScode即可使用
npm是一个包管理器 只要有NodeJs就有npm 可用其下载一些包和相关工具
在这里插入图片描述


三、使用

1、Http模块

若使用PHP来编写后端的代码时 需要Apache或Nginx服务器来处理客户端的请求响应
若使用Java来编写后端的代码时 需要Tomcat或Nginx服务器处理客户端的请求响应

但 对Node.js来说 概念完全不一样
使用Node.js时 不仅仅是在实现一个应用 同时还实现了整个HTTP服务器

// 引入http模块
var http=require("http");

// 用http模块创建服务
/**
 * req 获取url信息(request)
 * resp 浏览器返回信息(response)
 */
http.createServer(function(req,resp){
    // 发送Http头部 状态值200 文件类型html 字符集utf-8
    resp.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});

    // 发送响应数据
    resp.write("NodeJs Hello World!");

    // 结束响应
    resp.end();

}).listen(8001); // 设置监听端口

在cmd中到Nodejs文件所在盘符下输入node 文件名来运行
在这里插入图片描述
启动后 成功访问:
在这里插入图片描述
请求头也是自己设置的:
在这里插入图片描述
如此 简单实现了NodeJs服务器的访问


2、Url模块

Url模块有三个方法:parse() 和 format() 和 resolve()

①、parse()

parse方法主要用于解析url 也是Url模块中最常用的方法
在这里插入图片描述
可在parse()里传入url地址 拿到请求信息:
在这里插入图片描述
parse()方法的第二个参数传入true时 代表将请求信息解析 转换为对象:
在这里插入图片描述

②、format()

可将对象转换为请求地址 和parse()刚好相反

③、resolve()

可对请求url进行替换:
在这里插入图片描述


3、打印url

var http=require("http");

http.createServer(function(req,resp){

    // 打印加载的url
    console.log(req.url);

    resp.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});

    resp.write("NodeJs Hello World!");

    resp.end();

}).listen(8001);

例一:
访问路径:
在这里插入图片描述
输出:
在这里插入图片描述
例二:
访问路径:
在这里插入图片描述
输出:
在这里插入图片描述
例三:
访问路径:
在这里插入图片描述
输出:
在这里插入图片描述
这个/favicon.ico就是浏览器标签左侧的小图标 每次都会跟随页面自动加载
在这里插入图片描述
比如 "写文章"左侧的这个红色的"C"就是一个favicon.ico


4、获取请求参数

var http=require("http");
var url=require("url")

http.createServer(function(req,resp){
    
    resp.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    
    if (req.url!="/favicon.ico")
    {
        // req.url:获取浏览器url输入的信息
        console.log(req.url);
        
        // 解析url parse()第一个参数为地址 第二个参数传入true 会将请求的参数转换为对象
        var result=url.parse(req.url,true);
        console.log(result);
    }

    resp.write("NodeJs Hello World!");

    resp.end();

}).listen(8001);

在这里插入图片描述
获取到了一大堆数据
还可以获取其指定属性

5、获取url的get传值的指定参数

var http=require("http");
var url=require("url")

http.createServer(function(req,resp){
    
    resp.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    
    // 不解析图标图片
    if (req.url!="/favicon.ico")
    {
        // 解析url parse()第一个参数为地址 第二个参数传入true 会将请求的参数转换为对象
        var result=url.parse(req.url,true);

        // 获取url的id值
        console.log(result.query.id);
    }
    
    resp.write("NodeJs Hello World!");

    resp.end();

}).listen(8001);

当访问http://localhost:8001/news?id=1的时候

输出:
在这里插入图片描述
成功获取指定参数


四、Nodejs自启动工具 supervisor

supervisor会不停监视应用下面的所有文件
一旦发现有文件被修改 就重新载入程序文件 如此实现了部署
修改了程序文件后 马上就能看到变更后的结果
无需每次重启nodejs了

安装:

在cmd下输入:

npm install -g supervisor

在这里插入图片描述

使用

使用supervisor命令代替node命令启动应用即可
在这里插入图片描述
每次保存代码的时候 都会自动重新启动服务器:
在这里插入图片描述


发布了191 篇原创文章 · 获赞 8 · 访问量 71万+

猜你喜欢

转载自blog.csdn.net/Piconjo/article/details/105564400