分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

nodejs之mock与跨域代理的三两事

发布时间:2023-09-06 02:36责任编辑:郭大石关键词:jsnodejs跨域

emmm...好久没写博客了,都忘了该怎么开始。

那就先说下mockjs。因为一些原因,导致后台接口没有数据,那么我们就开始自己造数据,使用的是比较流行mockjs,根据文档就能简单的配置,然后开始愉快的玩耍了。(真香)

然后某天后台出数据了,又因为某些问题(跨域),导致我又没法愉快的玩耍,嗯,就是这样的,才有了今天这篇博客(口水话)。

使用的是nodejs做跨域代理,非常简单,先贴代码:

 1 var express = require(‘express‘); 2 var router = express.Router(); 3 var http = require(‘http‘); 4 ?5 router.all(‘*‘, function(request, response, next) { //代理了所有请求 6 ????var content = JSON.stringify(request.body); //转发原味的数据 7 ????var options = { 8 ????????host: ‘example.com‘, //需要代理的域名或者是ip 9 ????????port: 80, //端口号10 ????????path: request.path, //路径11 ????????method: ‘POST‘, //请求代理的方法12 ????????headers: { //设置一些请求头之类的13 ????????????‘Content-Type‘: ‘application/json‘,14 ????????????‘Content-Length‘: content.length15 ????????}16 ????};17 ????//开始做代理转发数据18 ????var req = http.request(options, function(res) {19 ????????var _data = ‘‘;20 ????????res.on(‘data‘, function(chunk) {21 ????????????_data += chunk;22 ????????});23 ????????res.on(‘end‘, function() {24 ????????????//请求完成之后让response对象返回json25 ????????????response.json(JSON.parse(_data))26 ????????});27 ????});28 ????//这个write大概就是发送这个body,以chunk的形式 原文: https://nodejs.org/dist/latest-v10.x/docs/api/http.html response.write(chunk[, encoding][, callback])29 ????req.write(content);30 ????//这次代理结束31 ????req.end();32 });

下面说下为什么这样写,最开始是匹配的所有路由,即:

router.all(‘/path‘, function(request, response, next) { ???//do something})

后来发现,这样其实太繁琐了,我有多少个接口我就要写多少个‘/path‘,然后我想到了一个*值,这样就匹配到了所有的path,前端发什么,我就代理什么,不管你有没有这个接口,没有当然就报错啦,所以才有上面我的path是request.path。(这里需要一个滑稽的表情)

好了,口水话太多,干货也就一点,还不知道下次更博是啥时候,有点小失落,不过到时候应该是小激动吧。

nodejs之mock与跨域代理的三两事

原文地址:https://www.cnblogs.com/xuejiangjun/p/10618355.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved