基于Express写一个接口

准备工作

基于Express写一个接口

目录

准备工作

 第一步在app.js上创建最基本的服务器

 第二步在router.js创建API路由模块

第三步在app.js导入路由模块

 第四步在router.js上编写get请求

 第五步在router.js上编写post请求

 第五步,要在app.js配置中间件

 第六步在1.html写上代码

 第七步,解决跨域问题


 不知道怎么弄这些的可以看我这个文章,都有详细写明准备工作用express创造一个静态服务器_满屋的柑橘的博客-CSDN博客第一步:我们要先准备好这些文件,当然这些都需要Node.js来做,需要下好Node.js.我们先手建一个文件夹,在里面创建index.js,右击index.js打开集成终端,输入npm init -y,package.json就出来,接再来在下载express,主要在终端输入输入npm i express,就下载成功了,这样我们的准备工作就准备好了.第二步:接下来在index.js写下以下代码就可以创建一个静态服务器,关于这个服务器有什么内容,可以在b.基于Express写一个接口https://blog.csdn.net/weixin_59960489/article/details/120651284?spm=1001.2014.3001.5501

 第一步在app.js上创建最基本的服务器

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

// 创建 express 的服务器实例
const app = express()

// 调用 app.listen 方法,指定端口号并启动 web 服务器
app.listen(8888, () => {
  console.log('running……')
})

 第二步在router.js创建API路由模块

const express = require('express')
const router = express.Router()

// 在这里挂载对应的路由


module.exports = router

第三步在app.js导入路由模块

完整代码

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

// 创建 express 的服务器实例
const app = express()

// 导入路由模块
const router = require('./router.js')
// 把路由模块,注册到 app 上
app.use('/api', router)

// 调用 app.listen 方法,指定端口号并启动 web 服务器
app.listen(8888, () => {
  console.log('running……')
})

 第四步在router.js上编写get请求

完整代码

const express = require('express')
const router = express.Router()

// 在这里挂载对应的路由
router.get('/book', (req, res) => {
  // 通过 req.query 获取客户端通过查询字符串发送到服务器的数据
  const query = req.query

  // 调用 res.send() 方法,想客户端响应处理的结果
  res.send({
    status: 0,  // 0 表示处理成功,1 表示处理失败
    msg: 'GET 请求成功',  // 状态描述
    data: query // 需要响应给客户端的数据
  })
})

module.exports = router

 第五步在router.js上编写post请求

完整代码

const express = require('express')

const router = express.Router()

// 在这里挂载对应的路由

// get请求

router.get('/book', (req, res) => {

    const query = req.query

    // 调用res.send()方法,向客户端响应处理的结果

    res.send({

        status: 0, //0表示处理成功,1表示处理失败

        mag: 'GET,请求成功', //状态描述

        data: query //需要响应给客户端的数据

    })

})

module.exports = router

// post请求

// 定义 POST 接口

router.post('/book', (req, res) => {

    // 通过 req.body 获取请求题中包含的 url-encoded 格式的数据

    const body = req.body

    // 调用 res.send() 方法,向客户端响应结果

    res.send({

        status: 0,

        msg: 'Post 请求成功',

        data: body

    })

})

module.exports = router

 第五步,要在app.js配置中间件

 完整代码

// 导入express模块

const express = require('express')

// 创建express的服务器

const app = express()

// 配置解析表单数据的中间件

//注意:如果要获取 URL-encoded 格式的请求体数据,必须配置中间件 app.use(express.urlencoded({ extended: false }))

app.use(express.urlencoded({

    extended: false

}))

// 导入路由模块

const router = require('./router')

// 把路由模块,注册到app上

app.use('./api', router)

// 调用app.listen方法,指向端口号并启动web服务器

app.listen(8888, () => {

    console.log('running');

})

 第六步在1.html写上代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>

<body>
  <button class="btn1">get</button>
  <button class="btn2">post</button>

  <script>
    $(function () {
      $('.btn1').click(function () {
        $.ajax({
          url: 'http://127.0.0.1:8888/api/book?name=tom&age=10',
          success: function (data) {
            console.log(data)
          }
        })
      })

      $('.btn2').click(function () {
        $.ajax({
          url: 'http://127.0.0.1:8888/api/book',
          method: 'post',
          data: {
            name: '雪中悍刀行',
            author: '烽火戏诸侯'
          },
          success: function (data) {
            console.log(data)
          }
        })
      })
    })
  </script>
</body>

</html>

 第七步,解决跨域问题

编写的 GETPOST 接口,存在一个很严重的问题:不支持跨域请求

解决接口跨域问题的方案主要有两种 :

CORS (主流的解决方案,推荐使用)

JSONP (有缺陷的解决方案:只支持 GET 请求

 使用cors中间件解决跨域问题步骤:

安装中间件:npm i cors

导入中间件:const cors = require('cors')

配置中间件:在路由之前调用app.use(cors())

完整代码

// 导入express模块

const express = require('express')

// 创建express的服务器

const app = express()

// 导入中间件

const cors = require('cors')

// 配置中间件

app.use(cors())

// 配置解析表单数据的中间件

//注意:如果要获取 URL-encoded 格式的请求体数据,必须配置中间件 app.use(express.urlencoded({ extended: false }))

app.use(express.urlencoded({

    extended: false

}))

// 导入路由模块

const router = require('./router')

// 把路由模块,注册到app上

app.use('/api', router)

// 调用app.listen方法,指向端口号并启动web服务器

app.listen(8888, () => {

    console.log('running');

})

 效果是这样的:

基于Express写一个接口

基于Express写一个接口

 

上一篇:编写一个简单的中间件


下一篇:初步认识express,并创建web服务器,挂载静态资源