【皇家赌场手机版】node完毕轻易的反向代理服务器,js不得不说的12点内容

前边用node.js实现轻易的反向代理,方今亟需回想,就顺手发到小说上了

每当提及反向代理器,人们通常一想到的正是Nginx,可是明天我们有时忽略远近有名的
Nginx,采取同一也是应用单线程、事件循环的服务端二弟——Node 来到达

本文主要给我们介绍的是有关接纳node.js达成反向代理的相关内容,分享出供我们参照他事他说加以考查学习,上面话非常的少说,来一同探访详细的介绍:

1.node.js,服务器端的javascript,它同目的在于后端(脱离浏览器景况)运维javascript代码。

很少说一贯上代码!

跨域难点是前端开采很广阔的难点

【皇家赌场手机版】node完毕轻易的反向代理服务器,js不得不说的12点内容。跨域难点是前端开拓很常见的难点化解方案有很各个

2.事件驱动、异步式I/O的编制程序方式(单线程)是其宗旨。

const http = require('http');
const url = require('url');
const querystring = require('querystring');


http.createServer(function(oreq, ores) {
  console.log("服务已开启");
  if (oreq) {
    if (oreq.url !== '/favicon.ico') {
      let content = '',
        postData = '';
      // 封装获取参数的方法
      function getParmas(oUrl) {
        let oQuery = (typeof oUrl === "object") ? oUrl : url.parse(oUrl, true).query,
          data = {};
        for (item in oQuery) {
          if (item !== 'hostname') {
            if (item !== 'path') {
              data[item] = oQuery[item];
            }
          }
        }
        return querystring.stringify(data);
      };
      // 封装发起http请求的方法
      function httpRequest(options, ores) {
        let datas = "";
        return http.request(options, function(res) {
          res.setEncoding('utf8');
          res.on('data', function(chunk) {
            // 返回数据
            datas += chunk;
          });
          res.on('end', function() {
            ores.writeHead(200, {
              "Content-Type": "application/json; charset = UTF-8",
              "Access-Control-Allow-Origin": "*"
            });
            ores.end(datas);
          })
        })
      };
      // 数据块接收中
      console.log(oreq.method.toUpperCase());
      if (oreq.method.toUpperCase() === "POST") {
        console.log("进入POST");
        oreq.on("data", function(postDataChunk) {
          postData += postDataChunk;
        });
        // 数据接收完毕,执行回调函数
        oreq.on("end", function() {
          console.log("接收完毕")
          console.log(postData);
            // 配置options
          let oData = JSON.parse(postData);

          postData = getParmas(oData);

          let options = {
            hostname: oData.hostname,
            port: '80',
            path: oData.path,
            method: "POST"
          };
          // 发送请求
          let req = httpRequest(options, ores);
          req.on('error', function(e) {
            console.log('problem with request: ' + e.message);
          });
          req.write(postData); //发送请求数据
          req.end();
        });

      } else {
        let queryObj = url.parse(oreq.url, true).query;
        content = getParmas(oreq.url);
        let options = {
          hostname: queryObj.hostname,
          port: '80',
          path: queryObj.path + content,
          method: "GET"
        };
        // 发送请求
        let req = httpRequest(options, ores);
        req.on('error', function(e) {
          console.log('problem with request: ' + e.message);
        });
        req.end();
      }
    }
  }
}).listen(8080, '127.0.0.1');

焚林而猎方案有很三种

  • jsonp返回
  • Access-Control-Allow-Origin:’*’ (须求注意的是
    对于post请求会形成option请求需要后端帮衬)
  • 前者增添代理

3.node.js的javascript引擎是v8,来自google
chrome项目。V8可以称作是眼下世界上最快的javascript引擎。

如上正是本文的全体内容,希望对大家的上学抱有扶助,也可望我们多多帮助脚本之家。

  1. 【皇家赌场手机版】node完毕轻易的反向代理服务器,js不得不说的12点内容。jsonp返回
  2. Access-Control-Allow-Origin:’*’ (须求专注的是
    对于post请求会形成option请求供给后端协理)
  3. 前者加多代理

前者增添代理

4.node.js内建了http服务器协助,也正是说你可以一下子就消除了地落到实处多少个网址和服务器的结合。

您大概感兴趣的文章:

  • 摒弃Nginx使用nodejs做反向代理服务器
  • Node.js站点使用Nginx作反向代理时布署GZip压缩的教程
  • 皇家赌场手机版,腾讯云(ubuntu)下安装 nodejs + 实现 Nginx
    反向代理服务器
  • Linux安装NodeJs并同盟Nginx达成反向代理
  • 动用node.js达成反向代理的点子详解

前端加多代理

以vue-cli为例,前端加多代理

5.commonnjs试图定义一套普通应用程序使用的api,从而填补javascript标准库过于简短的贫乏。node.js是commonjs的贯彻。

以vue-cli为例,前端增添代理

dev: {
 env: require('./dev.env'),
 port: 8888,
 autoOpenBrowser: true,
 assetsSubDirectory: 'static',
 assetsPublicPath: '/',
 proxyTable: {
 '/api':{
 target: 'http://localhost:3000',
 changeOrigin: true,
 }
 }

6.node包管理器(npm),可用来在线安装一些利用。

dev: {
  env: require('./dev.env'),
  port: 8888,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {
   '/api':{
    target: 'http://localhost:3000',
    changeOrigin: true,
   }
  }

个中’/api’为接口的前缀,target为后端服务位置

7.node的着力用法:node  xxx.js (脚本文件名)   也许 node -e
“xxxxxxxxx”(能够直接实行的代码)

在那之中’/api’为接口的前缀,target为后端服务地方

前者请求示例

8.node 回车 –>repl(read-eval-print
loop)形式,一连按五次ctrl+c就能够退出repl形式。

前端请求示例

vm.$http.post('/api/reg', JSON.stringify(info)).then(() => {

 }, () => {

 });

9.接纳supervisor可刷新脚本、用于调节和测试  ,安装:npm install -g
supervisor        运营应用:supervisor app.js

vm.$http.post('/api/reg', JSON.stringify(info)).then(() => {

 }, () => {

 });

反向代理

10.模块是node.js应用程序的为主组成都部队分,文件和模块是各种对应的。

反向代理

反向代理能够知晓为钦点三个服务地点为当中服务器地址。

11.node.js的包是四个索引,顶层目录下有package.json

反向代理能够精晓为钦点叁个劳务地点为在那之中服务器地址。

怎么须求反向代理

12.用node启动angular-seed-master:  node scripts/web-server.js

为啥须要反向代理

若是只是作为接口请求,其实前端搭建代理服务器就能够了,但是代理服务器并不能够知足全部的常常支出。

您只怕感兴趣的稿子:

  • windows安装nginx安排步骤图解(反向代理与负载均衡)
  • 使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置格局
  • nginx学习总括五(nginx反向代理)
  • nginx
    作为反向代理实现负载均衡的例证
  • 基于node.js的便捷支付透汉朝理
  • 作者的NodeJs学习小结(一)
  • 甩掉Nginx使用nodejs做反向代理服务器

若果只是当作接口请求,其实前端搭建代理服务器就足以了,不过代理服务器并不能够满意全体的平凡支付。

比如说单点登陆的达成,要求服务端做302跳转。不过前端文件并未配置到后端服务器时,set-cookie是无法打响种下cookie登入新闻的。

譬喻说单点登入的兑现,供给服务端做302跳转。不过前端文件未有配备到后端服务器时,set-cookie是不可能得逞种下cookie登入消息的。

那就要求在后端服务器增多反向代理。

那就需求在后端服务器增多反向代理。

演示如下

亲自去做如下

const proxy = httpProxy.createProxyServer();
const proxyServer = http.createServer((req, res) => {
 proxy.web(req, res, {
 target: 'http://localhost:8888',
 });
});
proxyServer.listen(8088, () => {
 console.log('proxy server is running ');
});
const http = require('http');
const httpProxy = require('http-proxy');
const proxy = httpProxy.createProxyServer();
const proxyServer = http.createServer((req, res) => {
 proxy.web(req, res, {
  target: 'http://localhost:8888',
 });
});
proxyServer.listen(8088, () => {
 console.log('proxy server is running ');
});

那样前端开垦就可以在8088端口了,当然热加载成效是在前者服务器的8888端口

诸如此类前端开辟就能够在8088端口了,当然热加载功效是在前者服务器的8888端口

总结

上述正是本文的全体内容,希望对我们的上学抱有支持,也冀望大家多多帮忙脚本之家。

上述正是那篇小说的全体内容了,希望本文的内容对大家的就学或许办事能带来一定的声援,如若有疑问大家能够留言沟通,谢谢我们对剧本之家的支持。

您恐怕感兴趣的小说:

  • 应用node.js完毕反向代理的办法详解
  • 详解用node.js达成轻巧的反向代理
  • Linux安装NodeJs并协作Nginx实现行反革命向代理
  • 腾讯云(ubuntu)下安装 nodejs + 完成 Nginx
    反向代理服务器
  • Node.js站点使用Nginx作反向代理时安插GZip压缩的学科
  • 甩掉Nginx使用nodejs做反向代理服务器

你只怕感兴趣的稿子:

  • 抛开Nginx使用nodejs做反向代理服务器
  • Node.js站点使用Nginx作反向代理时布置GZip压缩的科目
  • 腾讯云(ubuntu)下安装 nodejs + 完结 Nginx
    反向代理服务器
  • Linux安装NodeJs并同盟Nginx达成反向代理
  • 详解用node.js达成简单的反向代理

Leave a Comment.