本文已参与 「新人创作礼」活动, 一起开启掘金创作之路。
19- node post 请求方式书写接口
- 导入 express 模块: const express = require('express')
- 创建服务器: let app = express()
- 导入复杂中间键: app.use(express.json())
- 普通中间键: app.use(express.urlencoded())
- 开启服务器: 路径自己定义 app.post('/namebook', (req, res) => { console.log(req.body) // 返回的数据显示 res.json(req.body) // 复杂键值类型的 // res.send(req.body) 普通键值的 })
- 配置端口号: app.listen(8080, () => { console.log('*****') })
20- node post 请求方式 form-data 文件上传
- 在这里又得下载一个第三方的包了 npm i multer
- 导入 express multer 两个包; let app = express()
- 准备一个上传保存的文件夹: conconst upload = multer({dest:'uploads/'})
- 开启服务: 这里需要添加一个中间键: upload.single('a') app.post('/multer', upload.single('a'), (req,res) => { console.log(req.body); res.send(req.body) })
- 配置端口号: app.listen(8080, () => { console.log('*****') })
21- 普通接口设计与 RESTful 接口设计
-
普通接口: 就是上文属普通接口设计如: app.get('/getarticle',(req,res)=>{ res.send('获取') })
app.post('/addarticle',(req,res)=>{ res.send('添加') })
app.post('/delarticle',(req,res)=>{ res.send('删除') }) app.post('/updatearticle',(req,res)=>{ res.send('编辑') })
-
RESTful 接口设计: const express = require('express') const app = express(); app.get('/articles',(req,res)=>{ res.send('获取') })
app.post('/articles',(req,res)=>{
res.send('添加')
})
app.delete('/articles',(req,res)=>{
res.send('删除')
})
app.put('/articles',(req,res)=>{
res.send('编辑')
})
app.listen(8080,()=>{
console.log(8080);
})
21- 跨域访问接口
- 跨域的理解: 不同源的 Ajax 请求, 违反同源策略就会被判定为跨域(协议、域名、端口号), 浏览器给服务器发送请求服务器接收到了并返回, 但是浏览器发现是跨域的, 那么浏览器拦截下来了控制台报错。
- 解决方法 1: 服务器代理: 就是浏览器发送请求给同源的服务器让他代理给其他的服务器发送请求, 然后再从同源的服务器获得的信息资源返回给浏览器。
- 解决方法 2: 改发 jsonp
- 解决方法 3: 安装浏览器 allow-control-allow-origin 插件, 绕过同源策略
- 解决方法 4: 直接用 postman 软件测试
- 解决方法 5: CORS 先下包: npm i cors; var cors = require('cors'); app.use(cors())
- 一般来说跨域问题都是后端解决的。