Node.js学习记录(二)

2024-09-09 08:28
文章标签 学习 记录 js node

本文主要是介绍Node.js学习记录(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、express

1、初识express

2、安装express

3、创建并启动web服务器

4、监听 GET&POST 请求、响应内容给客户端

5、获取URL中携带的查询参数

6、获取URL中动态参数

7、静态资源托管

二、工具nodemon

三、express路由

1、express中路由

2、路由的匹配

3、路由模块化

4、路由模块添加前缀

四、中间件 

1、express中间件

2、express中间件调用流程

3、中间件格式

4、创建并使用中间件函数

全局生效中间件

局部生效中间件

5、中间件作用

6、中间件分类

express.json & POST请求数据的接收

7、自定义中间件

五、Express 编写接口

1、编写get 、post 方式接口

2、cors 解决跨域

3、关于 cors

cors 响应头

Access-Control-Allow-Origin

Access-Control-Allow-Headers

Access-Control-Allow-Methods

cors请求分类

4、JSONP


Node.js学习记录(一)-CSDN博客

接着上一篇继续学习node.js

一、express

1、初识express

express类似node.js中http模块,专门用来创建WEB服务器的,相对node中http更加方便、功能更加强大;本质是npm上提供的第三方包。官网地址:Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网

express是基于node.js封装出来的,使用express可以快速创建这两种服务器。

2、安装express

npm i express@4.17.1 //安装指定版本
npm i express //不指定版本直接安装

3、创建并启动web服务器

先新建个express练习目录 express, 里面新建express_test.js

(顺便 npm init -y  初始化一个package.json 文件,后面会用  )

//导入express
const express = require('express')
//创建服务器
const app = express()
//启动服务器
app.listen(3000,()=>{console.log('服务器启动了')
})

4、监听 GET&POST 请求、响应内容给客户端

//导入express
const express = require('express')
//创建服务器
const app = express()//监听请求,并向客户端响应数据 (指定user页面)
app.get('/user',(req,res)=>{res.send('hello express')
})
app.post('/user',(req,res)=>{res.send({name:'张三',age:18})
})//启动服务器
app.listen(3000,()=>{console.log('服务器启动了 http://127.0.0.1:3000')
})

请求中的两个参数:req 请求对象、res 响应对象

用 app.get 监听get请求,app.post 监听post请求

通过res.send() 向客户响应数据

运行结果

5、获取URL中携带的查询参数

可以通过req.query对象查询  如链接:http://127.0.0.1:3000/user?id=1&name=test&str=%E5%AD%97%E7%AC%A6

//监听请求,并向客户端响应数据
app.get('/user',(req,res)=>{res.send('hello express')console.log('请求的参数:',req.query)
})
app.post('/user',(req,res)=>{res.send({name:'张三',age:18})console.log('请求的参数:',req.query)
})

6、获取URL中动态参数

通过req.params对象访问URL中通过匹配到的动态参数

默认req.params是一个空对象, 示例链接:http://127.0.0.1:3000/user/9?id=1&name=test&str=%E5%AD%97%E7%AC%A6

//导入express
const express = require('express')
//创建服务器
const app = express()//监听请求,并向客户端响应数据 
//app.get('/user/:id/:name',(req,res)=>{
app.get('/user/:id',(req,res)=>{res.send('hello express')console.log('请求的动态参数参数:',req.params)
})//启动服务器
app.listen(3000,()=>{console.log('服务器启动了 http://127.0.0.1:3000')
})

:<key> ,这个key起什么名字,打印里面就会得到什么,比如 :name ,打印就会得到{name:9},

:<key1>/:<key1>参数可以有多个,如 http://127.0.0.1:3000/user/9/test?id=1&name=test&str=%E5%AD%97%E7%AC%A6

7、静态资源托管

express 提供了express.static(),可以方便地创建一个静态资源服务器,如:可以通过代码将图片、css、js等文件对外开放访问

app.use(express.static('public'))

express在指定静态目录下查找文件,并提供对外访问路径,但存放静态文件的目录名不会出现在url中。

如下面示例中托管images和other文件夹后,访问里面的文件

images文件夹中图片:http://localhost:3000/1.png

other文件夹中css文件:http://localhost:3000/reset.css

(查找顺序是按照代码中写的顺序进行查找文件)

const express = require('express')
const app = express()
//托管images文件夹
app.use(express.static('./images'))
//如果托管多个就继续添加,如:托管other目录
app.use(express.static('./other'))app.listen(3000, () => {console.log('Server is running here: http://localhost:3000')
})

挂载路径前缀

如果想要再访问的路径前有个前缀,则可以通过代码设置,访问地址

这篇关于Node.js学习记录(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150643

相关文章

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步