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

相关文章
|
3月前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
72 1
|
2月前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
493 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
2月前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
77 9
|
3月前
|
缓存 监控 JavaScript
Vue.js 框架下的性能优化策略与实践
Vue.js 框架下的性能优化策略与实践
|
3月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
64 2
|
3月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
3月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
4月前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
5月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实战指南
【9月更文挑战第6天】在数字化时代的潮流中,后端开发作为支撑现代Web和移动应用的核心,其重要性不言而喻。本文将深入浅出地介绍如何使用Node.js及其流行的框架Express来搭建一个高效、可扩展的后端服务。通过具体的代码示例和实践技巧,我们将探索如何利用这两个强大的工具提升开发效率和应用性能。无论你是后端开发的新手还是希望提高现有项目质量的老手,这篇文章都将为你提供有价值的见解和指导。
|
6月前
|
存储 JavaScript NoSQL
构建高效Web应用:使用Node.js和Express框架
【8月更文挑战第30天】本文将引导你了解如何使用Node.js和Express框架快速搭建一个高效的Web应用。通过实际的代码示例,我们将展示如何创建一个简单的API服务,并讨论如何利用中间件来增强应用功能。无论你是新手还是有经验的开发者,这篇文章都将为你提供有价值的见解。

热门文章

最新文章