【node.js】第六章 初识express

小柒很爱喵 2022-11-24 21:37:12 阅读数:805

JSnodenode.js第六第六章

目录

1.  express简介

1.1  express的概念

1.2 express的作用

2. express的使用

2.1 使用express创建Web服务器

2.2 监听GET/POST请求

2.3  获取URL的请求参数

3.  托管静态资源

3.1 express.static

3.2 托管多个静态资源

3.3 挂载路径前缀 

4. nodemon


1.  express简介

1.1  express的概念

express是基于Node.js平台的快速,极简Web开发框架。express的作用类似于Node.js中的http模块,用于创建Web服务器的。

express的官网:https://www.express.com/cn

1.2 express的作用

常见的两种服务器,分别是:

Web网站服务器:专门对外提供Web网页资源的服务器。

API接口服务器:专门对外提供API接口的服务器。

使用Express,可以方便、快速地创建Web网站服务器或API接口服务器。 

2. express的使用

2.1 使用express创建Web服务器

// 导入express包
const express = require('express');
// 创建express服务器
const app = express();
// 启动服务器 监听80端口,并有个回调函数
app.listen('80',() => {
console.log('express Web server is running at 127.0.0.1');
})

报错原因:没有安装express模块

解决:npm install express

 成功启动服务器:

 2.2 监听GET/POST请求

1. 通过app.get()方法,可以监听客户端的GET请求:

// 参数1: 客户端请求的URL地址
// 参数2: 请求对应的处理函数
// req: 请求对象
// res: 响应对象
app.get('请求URL', function(req, res) { /*处理函数*/ })

2. 通过app.post()方法,可以监听客户端的POST请求: 

app.post('请求URL', function(req, res) { /*处理函数*/ })

 3. 示例:

// 导入express包
const express = require('express');
// 创建express服务器
const app = express();
// // 启动服务器
app.listen('80',() => {
console.log('express Web server is running at 127.0.0.1');
})
app.get('/user', (req, res) => {
const jsonObj = {
name: 'sun',
age: '18',
gender: 'women'
}
res.send(jsonObj); // 响应客户端JSON数据
})
app.post('/user', (req, res) => {
res.send('请求成功') // 响应客户端文本数据
})

可以下载postman或者Apipost软件来模拟GET/POST请求的发送: 

 

 2.3  获取URL的请求参数

1. 获取静态参数 

通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:

// 模拟请求127.0.0.1?name=sun&age=20,URL附带参数、打印参数并响应参数
app.get('/', (req, res) =>{
console.log(req.query);
res.send(req.query);
})

2. 获取动态参数

app.get('/user/:id', (req,res) => {
console.log(req.params); // 可以获取动态参数
res.send(req.params); //响应动态参数id
})

3.  托管静态资源

3.1 express.static

express提供了一个非常好用的函数,叫做express.static(),通过它,我们可以非常方便地创建一个静态资源服务器,例如,通过如下代码就可以将public目录下的图片,CSS文件,JS文件对外开放访问了:

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

设置后,可以访问public目录的所有文件了:

http://localhost/images/bg.jpg
http://localhost/css/style.css
http://localhost/js/login.js
...

注意:Express在指定的静态目录中查找文件,并对外提供资源访问路径,因此,存放静态文件的目录名不会出现在URL中

3.2 托管多个静态资源

如果要托管多个静态资源目录,可以多次调用express.static()函数:

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

访问静态资源文件时,express.static()函数会根据目录的添加顺序查找所需的文件。

3.3 挂载路径前缀 

如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下方式:

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

这样就可以在访问路径出现需要的路径前缀了: 

4. nodemon

在编写调试Node.js项目时,如果修改了代码,需要频繁关闭服务,再重新启动,很麻烦。所以可以使用nodemon这个工具,可以监听项目的变动,如果代码被修改了,nodemon会自动帮我们重启项目,方面开发和调试。

安装nodemon:

npm install nodemon -g

安装nodemon后,我们运行项目的命令需要从node变为nodemon:

node test.js
// 安装nodemon后、替换为如下命令
nodemon test.js

这样nodemon可以监听test.js文件的改动,从而不需要我们手动关闭重启服务。nodemon会自动重启。 

版权声明:本文为[小柒很爱喵]所创,转载请带上原文链接,感谢。 https://blog.csdn.net/weixin_41950078/article/details/128001917