【node.js】第六章 初识express
创始人
2024-02-10 10:11:52

目录

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会自动重启。 

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...