Node.js的express模块

一、express介绍

express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架

官方网址:https://www.expressjs. com.cn/ 简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用(HTTP 服务)

二、express使用

1.express下载

我们使用npm安装express

在Visual Studio Code中新建文件夹express

初始化express

npm init

全局安装express

npm i express

2.创建简单的express项目

创建01_express.js文件

// 导入express
const express = require('express')

//创建应用对象
const app = express()

//创建路由
app.get('/home', (req, res) => {
  res.end('hrello world')
})

//监听窗口,启动服务
app.listen(9000, () => {
  console.log('服务已经启动,端口9000正在监听。。。')
})

启动服务

node 01_express.js

然后在浏览器就可以访问 http://127.0.0.1:3000/home

三、express路由

路由:路由确定了应用程序如何响应客户端对特定端点的请求

1.路由的组成

一个路由的组成有 请求方法 , 路径 和 回调函数 组成

路由使用格式

app.<method>(path,callback)

代码示例:创建02_路由.js

// 导入express 模块
const express = require('express')

//创建应用对象
const app = express()

//创建get路由
app.get('/shouye', (req, res) => {
    res.send('首页')
})

//创建post路由
app.get('/login'), (req, res) => {
    res.send('登录')
})

//自定义404路由
app.all('*', (req, res) => {
    res.send('<h1>404 not found<h1>')
})

//监听端口,启动服务
app.listen(9000, () => {
    console.log('端口9000为您监听')
})

2.获取请求参数

express 框架封装了一些 API 来方便获取请求报文中的数据,并且兼容原生 HTTP 模块的获取方式

/导入 express
const express = require('express');
//创建应用对象
const app = express();
//获取请求的路由规则
app.get('/request', (req, res) => {
 //1. 获取报文的方式与原生 HTTP 获取方式是兼容的
 console.log(req.method);
 console.log(req.url);
 console.log(req.httpVersion);
 console.log(req.headers);
 //2. express 独有的获取报文的方式
 //获取查询字符串
 console.log(req.query); // 『相对重要』
 // 获取指定的请求头
 console.log(req.get('host'));
 res.send('请求报文的获取');
});
//启动服务
app.listen(3000, () => {
 console.log('启动成功....')
})

四、express响应设置

express 框架封装了一些 API 来方便给客户端响应数据,并且兼容原生 HTTP 模块的获取方式

//获取请求的路由规则
app.get('/response', (req, res) => {
 //1. express 中设置响应的方式兼容 HTTP 模块的方式
 res.statusCode = 404;
 res.statusMessage = 'xxx';
 res.setHeader('abc','xyz');
 res.write('响应体');
 res.end('xxx');
 //2. express 的响应方法
 res.status(500); //设置响应状态码
 res.set('xxx','yyy');//设置响应头
 res.send('中文响应不乱码');//设置响应体
 //连贯操作
 res.status(404).set('xxx','yyy').send('你好朋友')
 //3. 其他响应
 res.redirect('http://atguigu.com')//重定向
 res.download('./package.json');//下载响应
 res.json();//响应 JSON
 res.sendFile(__dirname + '/home.html') //响应文件内容
});

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值