Node.js(二)node 核心模块 fs、HTTP模块、express框架

简介: Node.js(二)node 核心模块 fs、HTTP模块、express框架

一、核心模块(FS模块)

       fs 模块是文件系统模块:用于文件操作,分文件形式和目录形式,使用前需先导入 fs 模块:


const fs = require('fs');

1. 常用API:


70043d8b12a64eb38eb1a3ac5dfd2c80.png


2. 同步和异步


//同步:在主线程中执行,会阻止后续代码的执行,通过返回值获取结果
          let s = fs.stat
//异步:在一个独立的线程执行,不会阻止主线程中后续代码执行,结果以回调函数形式获取,最终放入事件队列
          fs.stat('../Day02',(err,s)=>{
          //形参err指可能产生的错误结果
                if (err){
                    throw err;
                }
                //s表示成功的结果
                console.log(s);
                //查看是否为文件
                console.log(s.isFile( ));
                //查看是否为目录
                console.log(s.isDirectory( ));
           });

3. 文件流


(1)createReadStream( )  创建可读取的文件流,分段读取数据

(2)createWriteStream( )  创建可写入的文件流

(3)pipe( )  管道,可以将读取的文件流添加到写入的文件流


//引入fs模块
const fs = require('fs');
//创建一个可读取的文件流
let rs = fs.createReadStream('./2018061133.rar');
//创建一个可写入的文件流,即使文件不存在也会自动创建
let ws = fs.createWriteStream('./2018061101.rar');
//把读取的文件流通过管道添加到写入的文件流
rs.pipe(ws);

二、HTTP模块

1. HTTP协议


       超文本传输协议,是客户端浏览器和Web服务器之间的通信协议。由四部分组成:


(1)通用的头信息(general)


       Request URL:要请求的资源

       Request Method:对资源的操作方式

       get获取

       post新建

       delete删除

       Status Code: 响应的状态码:


               1**:接受了请求,还没做出响应

               2**:成功响应

               3**:响应的重定向,发生跳转

               4**:客户端错误

               5**:服务器端错误


(2)响应的头信息(response)


       Location:要跳转的URL,通常结合状态码302来使用

       Content-Type:内容类型,解决中文乱码 text/html;charset=utf-8


(3)请求的头信息(request)


(4)请求体,只有涉及到数据传递才会出现。


2. HTTP模块


       可以用来创建WEB服务器。


//1.创建WEB服务器
const http = require('http');  //引入HTTP模块
const app = http.createServer( );  //创建web服务器
app.listen(8080);  //设置端口
//2.接收请求做出响应
app.on('request',(req,res)=>{
     req 请求的对象
     req.url 请求的服务器端的资源
     req.method 请求的方法
     res 响应的对象
     res.writeHead( ) 设置响应的状态码和头信息
     res.write( ) 设置响应的内容
     res.end( ) 结束并发送响应
  })

三、express框架

       express简化了已有的功能,增加了之前没有的功能,基于项目开发,属于第三方模块,需要先下载安装:


npm install express

       它的特点是基于Node.js平台,快速、开放、极简的WEB开发框架。


1. 路由


       浏览器发来的请求,服务器根据请求的方法和请求的URL做出的响应,路由最终处理特点的请求;路由是由请求的方法、请求的URL、回调函数三个要素组成的。


2. 使用步骤


(1)创建服务器


const express = require('express');  //引入express第三方模块
const app = express( );  //创建WEB服务器
app.listen(8080);  //设置端口

(2)添加路由


       有三种添加方式:


//添加路由:处理首页的请求
//请求的URL:/index  请求的方法:get
app.get('/index',(req,res)=>{
     res.send('这是首页!');
});
//添加路由:跳转
app.get('/study',(req,res)=>{
     res.redirect('https://www.tmooc.cn/');
});
//添加路由:响应文件
app.get('/list',(req,res)=>{
     res.sendFile(__dirname + '/1.html');
});
req 请求对象
res 响应对象
res.send( ) 设置响应的内容并发送
res.redirect( ) 设置响应的重定向并发送
res.sendFile( ) 设置响应的文件并发送,使用绝对路径 __dirname

801101b4b0544b4482ce3ce856c565fc.png

(3)请求对象和响应对象


       即数据传递,有GET传递、POST传递、路由传参


get传递:


eg:
//添加路由,接收按钮提交的请求
app.get('/mysearch',(req,res)=>{
     //console.log(req.url,req.method);
     console.log(req.query);
     res.send('搜索成功');
});
req.method  获取请求的方法
req.url 获取请求的URL
req.query 获取URL中查询字符串的数据,格式为对象

97c6d4ecf5d34ab6ad12bb560275ac36.png

post传递:


eg:
//新建路由(post    /mylogin)
app.post('/mylogin',(req,res)=>{
     req.on('data',(chunk)=>{
        //chunk 传递的一段数据
        console.log(chunk.toString());
        var obj = querystring.parse(chunk.toString());
        console.log(obj);
     });
        res.send('post方法请求成功');
});

路由传参:


eg:
//新建路由,获取包的详情介绍(get  /package)
app.get('/package/:pname',(req,res)=>{
  console.log(req.params);
  res.send('这是包的详情介绍');
});

总结:

ec9427ed68644235a95035daa7a0ea7a.png

相关文章
|
6天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
10天前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
24 1
|
13天前
|
JavaScript 中间件 API
Node.js进阶:Koa框架下的RESTful API设计与实现
【10月更文挑战第28天】本文介绍了如何在Koa框架下设计与实现RESTful API。首先概述了Koa框架的特点,接着讲解了RESTful API的设计原则,包括无状态和统一接口。最后,通过一个简单的博客系统示例,详细展示了如何使用Koa和koa-router实现常见的CRUD操作,包括获取、创建、更新和删除文章。
34 4
|
8天前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
9天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
17 0
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
1月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
147 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
1月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
80 4
|
5月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。

热门文章

最新文章