欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(Node.js(一)处理http请求并响应、用户登录、模块化、第三方模块的安装(npm)、nrm安装与使用)

程序员文章站 2022-07-01 10:56:01
...

Node.js(一)处理http请求并响应、用户登录、模块化、第三方模块的安装(npm)、nrm安装与使用

关于Node.js

Node.js 是一个开源与跨平台的 JavaScript 运行时环境,即运行JavaScript不再依赖于浏览器。
Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),可以执行ECMAScript,但是不支持DOM与BOM。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
官网:link.(http://nodejs.cn/)

处理http请求并响应

/**
 * 搭建一个HTTP服务器,处理HTTP请求并响应
 */

// 加载http模块,用来创建HTTP服务器
var http = require('http'); 

// 创建一个HTTP服务器
var server = http.createServer(function(request,response){ // 参数request表示请求对象,参数response表示响应对象
    // 处理请求
    // console.log('接收到一个请求');
    console.log(request.url);

    // 响应客户端,指定响应头信息
    //第一个参数:响应码;第二个参数:指定响应头信息(对象)
    response.writeHead(200,{
        'Content-Type':'text/html'
    });
    // 响应数据
    response.write('<h1>welcome to node.js</h1>');
    response.end(); // 响应结束
});

// 启动服务器,监听3000端口的请求
server.listen(3000,function(){
    console.log('服务器启动,开始监听3000端口');
});

用户登录

/**
 * 用户登陆
 */

// 加载模块
var http = require('http'); 
//引用querystring.parse方法将字符串数据转换为对象
var querystring = require('querystring');

var server = http.createServer(function(request,response){
    var url = request.url;
    switch(url){
        case '/show': // 显示登陆页面
            show(request,response);
            break;
        case '/login': // 处理登陆请求
            login(request,response);
            break;
        default:
            response.writeHead(404,{});   
            break; 
    }
});

server.listen(3000,function(){
    console.log('服务器启动,监听8888端口。。。。');
});

// 显示登陆页面
function show(request,response){
    response.writeHead(200,{
        'Content-Type':'text/html'
    });

    response.write('<!DOCTYPE html>');
    response.write('<html lang="en">');
    response.write('<head>');
    response.write('    <meta charset="UTF-8">');
    response.write('    <meta name="viewport" content="width=device-width, initial-scale=1.0">');
    response.write('    <title>用户登陆</title>');
    response.write('</head>');
    response.write('<body>');
    response.write('    <form action="/login" method="post">');
    response.write('        用户名:<input type="text" name="username"> <br>');
    response.write('        密码:<input type="password" name="password"> <br>');
    response.write('        <input type="submit" value="登录">');
    response.write('    </form>');
    response.write('</body>');
    response.write('</html>');
    response.end();
}

// 处理登陆请求
function login(request,response){
    response.writeHead(200,{
        'Content-Type':'text/html;charset=utf-8'
    });

    // 绑定data事件,每当获取到请求参数时触发执行
    var demo = '';
    request.on('data',function(part){  // 这里处理的是POST请求
        demo += part;
    });
    // 绑定end事件,当请求参数获取结束时触发执行
    request.on('end',function(){
        // console.log(demo); // username=123&password=123456
        var obj = querystring.parse(demo); // 将查询字符串转换为对象
        if(obj.username=='123' && obj.password=='123456'){
            response.write(`登录成功!`);
        }else{
            response.write('用户名或密码不正确');
        }
        response.end();
    });
}

第三方模块的安装(npm)

- npm简介

  • 全称node package manager(node包管理工具)
  • npm是随同Node.js一起安装的工具,用来安装、卸载、更新软件包/模块等,同时能够解决软件包之间的依赖关系。
  • 官网:link.(https://www.npmjs.com/)

- npm用法

命令 作用 备注
npm init [–yes] 初始化项目/模块 在项目根目录下会生成package.json
npm install 模块名 下载并安装模块 切换到项目根目录下执行,下载后的模块文件存储在node_modules 文件夹中
npm install 模块名@版本号 下载并安装指定版本的模块 默认安装模块的最新版本
npm install 模块名 --save 下载并以生产依赖的方式安装模块 将模块信息添加到package.json中的dependencies (生产依赖)
npm install 模块名 --save-dev 下载并以开发依赖的方式安装模块 将模块信息添加到package.json中的devDependencies (开发依赖)
npm install 模块名 -g 下载并全局安装模块 为系统提供全局功能,存储于node的全局环境中
npm install 自动根据package.json文件中的依赖信息下载包 自动读取package.json文件中的依赖信息并下载安装
npm uninstall 模块名 卸载项目中的模块 –save卸载时删除package.json中的生产依赖记录;–save-dev卸载时删除package.json中的开发依赖记录;-g卸载全局模块
npm info 模块名 查看模块的描述信息 模块版本、依赖等
npm update 模块名 更新模块 –save、–save-dev、 -g
npm run 命令名 执行指定的命令 执行package.json 文件中的scripts 属性的指定命令

nrm安装与使用

该模块为node的全局扩展模块,提供系统命令,用于实现快速npm源地址切换。
执行npm install nrm -g进行全局安装

npm install nrm -g

nrm ls看地址列表
(Node.js(一)处理http请求并响应、用户登录、模块化、第三方模块的安装(npm)、nrm安装与使用)

nrm use切换地址
(Node.js(一)处理http请求并响应、用户登录、模块化、第三方模块的安装(npm)、nrm安装与使用)

nrm test测试速度
(Node.js(一)处理http请求并响应、用户登录、模块化、第三方模块的安装(npm)、nrm安装与使用)