express的使用方法

139 阅读3分钟

1.介绍

Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架

2.运行第一个express程序

1.创建项目并初始化

创建一个全新的文件夹,在文件夹下打开小黑窗运行 npm init -y 生成package.json文件

2.下载express包

npm i express

3.快速创建web服务器

在项目目录下新建一个app.js文件,输入

//1. 加载express
const express = require('express')
//2. 调用express()
const app = express()
// 3. 设置请求对应的处理函数
app.get('/地址',(req,res)=>{
 res.send('hello')
})
4.监听端口号,启动web服务
app.listen(3000,()=>console.log('app listening on port 3000!'))

3.托管静态资源

//1. 加载express
const express = require('express')
//2. 调用express()
const app = express()
//3. 设置请求对应的出路函数
app.use(express.static('public'))
//4. 监听端口号,启动web服务器
app.listen(3000,()=>console.log('app listening on port 3000!'))

此时,所有放在public下的内容可以直接访问,注意,此时在url中并不需要出现public这级目录。在public下新建index.html,可以直接访问到。

4.写接口

接口传参

我们使用ajax请求向服务器接口传参,按http协议的约定,每个请求都有三个部分:

  • 请求: 保存了请求方式,地址,可以以查询字符串的格式附加一部分数据。
  • 请求:它可以附加很多信息,其中content-type用来约定请求体中保存的数据格式。
    content-type常见有三种取值:
content-type的值表示请求体的数据格式示例
application/x-www-form-urlencode普通键值对象a=2&c=1
application/jsonjson对象{a:1,b:{c:1}}
multipart/form-data上传文件file

1.express写get接口

express框架会自动收集get类型的接口从url地址中传递的查询字符串参数,并自动保存在req对象的query属性中

const express = require('express')
const app = express()
app.get('/get',(req,res)=>{
 console.log(req.query)
 res.send({name:'张三'})
})

2.post接口-普通键值

app.use(....)之后,在res.body中就会多出一个属性res.body,可以通过req.body来获取post传递的键值对

const express = require('express')
const app = express()
//使用中间件
app.ues(express.urlencoded())
app.post('/add',(req,res)=>{
 res.send(req.body)
})

3.post接口-json格式的参数

在post传递参数时,如果要传入的参数比较复杂(多级嵌套),则可以使用json格式上传。

const express = require('express')
const app = express()
app.use(express.json())
// 会自动加入req.body属性,这个属性中就包含了post请求所传入的参数
app.post('/psotJSON',(req.res)=>{
 console.log(req.body)
 res.send('/postJSON')
})

4.post接口-form-data文件上传

1.安装包

npm i multer

2.使用

const express = require('express')
const app = express()
const multer = require('multer')
const upload = multer({dest:'uploads/'})
// 上传的文件会保存在uploads目录下
app.post("/postfile",upload.single('cover'), function(req,res){
    // cover 表示要上传的文件在本次上次数据中的键名
    // req.file 记录了文件上传的信息
    // req.body 记录了其它普通参数(非文件)的信息
    res.send()
})

端框架代码

传参方式传参方式后端框架express
请求行get方式req.query
请求体application/x-www-form-urlencodeapp.use(express.urlencoded()); req.body
请求体application/jsonapp.use(express.json() ); req.body
请求体multipart/form-data1. 引入包  const multer = require('multer');2. 配置app.post('/apiname', upload.single() , req.body)