(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看地址列表
nrm use切换地址
nrm test测试速度