官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,是专门用来创建 Web 服务器的。

Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法。

Express 的中文官网:http://www.expressjs.com.cn/

http 内置模块与 Express 类似于浏览器中 Web API 和 jQuery 的关系。后者是基于前者进一步封装出来的。

安装express

在项目所处的目录中,运行如下的终端命令,即可将 express 安装到项目中使用:

npm install express

创建基本的 Web 服务器

// 1.导入 express
const express = require('express');// 2.创建 web 服务器
const app = express();// 3.启动 web 服务器
app.listen(80, () => {console.log('express server running at http://127.0.0.1');
})

监听 GET 请求

// 参数1:客户端请求的 URL 地址
// 参数2:请求对应的处理函数
//      req:请求对象(包含了于请求相关的属性与方法);
//      res:响应对象(包含了与响应相关的属性与方法);
// 4. 监听客户端的GET和POST请求,并向客户端响应具体的内容
app.get('/user', (req, res) => {// 调用express提供的res.send()方法,向客户端响应一个JSON对象res.send({name: 'zs', age: 20, gender: '男'})
})

监听 POST 请求

// 参数1:客户端请求的 URL 地址
// 参数2:请求对应的处理函数
//      req:请求对象(包含了于请求相关的属性与方法);
//      res:响应对象(包含了与响应相关的属性与方法);
app.post('/user', (req, res) => {
//    调用express提供的res.send()方法,向客户端响应一个文本字符串res.send('请求成功')
})

获取 URL 中携带的查询参数

app.get('/', (req, res) => {
//    通过req.query 可以获取到客户端发送过来的 查询参数
//    注意: 默认情况下,req.query 是一个空对象console.log(req.query)res.send(req.query)
})

获取 URL 中的动态参数

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

//注意:这里的:id是一个动态的参数
app.get('/user/:id/:name', (req, res) => {
//    req.paraams 是动态匹配到的URL参数,默认也是一个空对象console.log(req.params)res.send(req.params)
})

托管静态资源

express.static()

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

app.use(express.static('./clock'));

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

托管多个静态资源目录

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

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

app.use(express.static('./clock'));
app.use(express.static('./public'));

挂载路径前缀

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

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

现在,你就可以通过带有 /public 前缀地址来访问 public 目录中的文件了:

http://localhost:3000/public/images/kitten.jpg

http://localhost:3000/public/css/style.css

http://localhost:3000/public/js/app.js

Express的使用相关推荐

  1. express+ejs搭建的留言

    1.app.js const express = require('express'); const bodyParser = require('body-parser'); const morgan ...

  2. 学习笔记-express路径问题

    在页面渲染成功之后,报错出现静态文件css样式引用路径出错,于是我就根据express api文档,托管静态文件作出修改,最后全是徒劳.于是我又从引用开始找起,<link rel="s ...

  3. express中放置静态文件

    不使用模版引擎的话要直接添加html,可以使用express.static()中间件设定静态文件目录,然后将html文件放在里面,如:express默认静态文件目录为 app.use(express. ...

  4. Session原理、安全以及最基本的Express和Redis实现

    Session原理.安全以及最基本的Express和Redis实现 https://segmentfault.com/a/1190000002630691 转载于:https://www.cnblog ...

  5. NodeJS+Mongodb+Express做CMS博客系统

    楼主正在用业余时间开发中-- ,目前的版本仅支持会员系统,尝鲜一下吧~ hi-blog 一个 nodejs+express+mongodb 的 cms 系统 怎么启动 默认你已经安装了 mongodb ...

  6. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

  7. Using NUnit with Visual Studio 2005 Express Editions

    允许通过Build Toolbar选择"Debug" or "Relese"设置 "工具" -> "选项..." ...

  8. express给html设置缓存,webpack + express 实现文件精确缓存

    由于最近开发的个人博客(Vue + node)在使用过程中,发现网络加载有点慢,所以打算对它进行一次优化.本次优化的目标如下: index.html 设置成 no-cache,这样每次请求的时候都会比 ...

  9. 三菱触摸屏usb驱动安装_2020年三菱EXPRESS SWB和LWB:竟然是日系中唯一没有屏幕的面包车...

    我们听到三菱的Express van铭牌在中断七年后重新进入市场的消息而感到兴奋.但这并不是我们所设想的日式负载搬运器.相反,它完全基于日产-雷诺-三菱联盟的雷诺交通及其带来的协同效应.实际上,尽管每 ...

  10. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件 下载地址 ...

最新文章

  1. Java 性能优化实战记录(3)--JVM OOM的分析和原因追查
  2. Linux下文件权限查看并使用chomd修改文件权限
  3. iphone屏幕录制_如何将iPhone投屏到Mac上?iphone投屏到苹果电脑方法
  4. JDK 下载相关资料
  5. linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
  6. 利用JS+Ajax实现下拉列表无刷联动,及其相关
  7. 再看2015 --北漂程序员的成长史
  8. safari里的touch事件解析
  9. 快速安装Pytorch
  10. 基于安卓/android/微信小程序的自来水收费系统app-#计算机毕业设计
  11. java生成顺丰电子面单,顺丰拼多多电子面单设置教程
  12. 步进电机、伺服电机、舵机的区别与控制(角度、转速)
  13. 金彩教育:选择关键词要参考哪些数据
  14. 画火柴人动画的手机软件_火柴人动漫制作软件下载-火柴人动漫制作手机中文版 v2.1.4_5577安卓网...
  15. Android 磁场传感器 地磁倾角计算 SensorManager.getInclination方法
  16. Arduino框架下 ESP32看门狗使用示例
  17. 时空之巅服务器在线玩,天域之巅 - 《神鬼传奇》官方网站
  18. 力扣热门题目简单部分合集(共23道)
  19. Picker 选择器
  20. ECharts 地图绘制

热门文章

  1. 使用 Travis-CI 部署 HEXO 博客
  2. 单元格下拉全选快捷键_复制全选快捷键是什么
  3. QQ空间抢车位刷钱方法汇总
  4. 计算机毕业设计之java+jsp517报刊图书征订管理系统
  5. C# asp.net图片拼接方法
  6. 【空气质量数据分析专题三】优良率年际变化分析
  7. 美团点评2020校园招聘商业分析师一面(2019.9.5)
  8. M0、M1、M2、M3、M4
  9. linux刻录光盘空间不足,解决Linux下刻录光盘问题
  10. win10下载ie浏览器