前端通过接口找node要数据,node向其他服务器请求完数据返回给前端
只有浏览器存在跨域问题,node不存在
前端
<script>
fetch('http://127.0.0.1:8080/api/user').then(res => res.json()).then(res => {
console.log(res);
})
</script>
后端
let http = require('http')
let https = require('https')
let url = require('url') // 用于解析url地址
const app = http.createServer((req, res) => {
let urlobj = url.parse(req.url, true) // 转换为对象
console.log(urlobj);
res.writeHead(200, {
"Content-Type": "application/json;charset=utf-8",
"access-control-allow-origin": "*" // 允许所有域通过控制
})
switch (urlobj.pathname) {
case '/api/user':
httpsGit((data)=>res.end(data))
break
default:
res.end('404')
break
}
})
app.listen(8080, () => {
console.log('localhost:8080')
})
function httpsGit (response) {
let list = ''
https.get('https://i.maoyan.com/api/mmdb/movie/v3/list/hot.json?ct=%E5%98%89%E5%85%B4&ci=185&channelId=4',(res)=>{
res.on("data",(data)=>{
list+=data
}) // 有数据返回就会触发,数据流的方式一点一点的返回
res.on('end',()=>{ // 数据合并到一起后,end可以拿到完整数据
response(list)
})
})
}
请登录后查看回复内容