使用Express编写接口

创建基本的服务器

const express =require('express')
//创建express的服务器案例
const app=express()

//write your code here

//调用app.listen方法,指定端口号并启动web服务器
app.listen(80,function(){
console.log('Express server running at http://127.0.0.1 ')
})

创建API路由模块

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

//bind your router here...

module.exports=apiRouter

//-----------------------------------
//api.js[导入并注册路由模块]
const apiRouter=require('./apiRouter.js')
app.use('/api',apiRouter)

编写GET接口

apiRouter.get('/get',(req,res)=>{
//1.获取到客户端通过查询字符串,发送到服务器的数据
const query=req.query
//2.调用res.send()方法,把数据响应给客户端
res.send({
status:0,		//状态, 0表示成功, 1表示失败
msg:"GET请求成功" . //状态描述
data:query         //需要响应给客户端的具体数据 
		})
})

编写POST接口

// 定义 POST 接口
router.post('/post', (req, res) => {
  // 通过 req.body 获取请求体中包含的 url-encoded 格式的数据
  const body = req.body
  // 调用 res.send() 方法,向客户端响应结果
  res.send({
    status: 0,
    msg: 'POST 请求成功!',
    data: body,
  })
})

同时配置中间件 否则接收不到数据

// 配置解析表单数据的中间件
app.use(express.urlencoded({ extended: false }))

基于CORS解决跨域资源共享

编写的GET和POST接口,很可能存在一个很严重的问题:不支持跨域请求
协议,域名,端口号任何一项不同就存在跨域问题
解决接口跨域问题的方案主要有两种:
①CORS(主流的解决方案,推荐使用)
②JSONP(有缺陷的解决方案:只支持GET请求)

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

cors是Express的一个第三方中间件。通过安装和配置cors中间件,可以很方便地解决跨域问题。
使用步骤分为如下3步:
①运行npm install cors 安装中间件
②使用const cors=require(‘cors’)导入中间件
③在路由之前调用app.use(cors())配置中间件

什么是CORS

CORS由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源
浏览器的同源安全策略默认会阻止网页“跨域”获取资源。但如果接口服务器配置了CORS相关的HTTP响应头,就可以解除浏览器端的跨域访问限制
在这里插入图片描述

CORS的注意事项

①CORS主要在服务器端进行配置。客户端浏览器无须做任何额外的配置,既可请求开启CORS的接口
②CORS在浏览器中有兼容性。只有支持XMLHttpRequest Level2的浏览器,才能正常访问开启了CORS的服务端口(IE10+,Chrome4+、FireFox3.5+)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值