• 【node.js】第六章 初识express


    目录

    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服务器

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

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

    解决:npm install express

     成功启动服务器:

     2.2 监听GET/POST请求

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

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

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

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

     3. 示例:

    1. // 导入express包
    2. const express = require('express');
    3. // 创建express服务器
    4. const app = express();
    5. // // 启动服务器
    6. app.listen('80',() => {
    7. console.log('express Web server is running at 127.0.0.1');
    8. })
    9. app.get('/user', (req, res) => {
    10. const jsonObj = {
    11. name: 'sun',
    12. age: '18',
    13. gender: 'women'
    14. }
    15. res.send(jsonObj); // 响应客户端JSON数据
    16. })
    17. app.post('/user', (req, res) => {
    18. res.send('请求成功') // 响应客户端文本数据
    19. })

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

     

     2.3  获取URL的请求参数

    1. 获取静态参数 

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

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

    2. 获取动态参数

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

    3.  托管静态资源

    3.1 express.static

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

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

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

    1. http://localhost/images/bg.jpg
    2. http://localhost/css/style.css
    3. http://localhost/js/login.js
    4. ...

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

    3.2 托管多个静态资源

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

    1. app.use(express.static('public'));
    2. 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:

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

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

  • 相关阅读:
    子连接中的参数传递
    百度第三季度财报前瞻:财务业绩预计将超预期
    Splunk 打开 9997 port
    Spring如何解决循环依赖问题
    用于视觉检测的线扫远心镜头VS-LTC系列
    02.3 线性代数
    【回溯算法】leetcode 46. 全排列
    NUC980webServer开发
    springboot启动流程
    FPGA运算
  • 原文地址:https://blog.csdn.net/weixin_41950078/article/details/128001917