node+express+http-proxy-middleware做代理

最近,不赶着做项目,于是想着怎样做公司的前后端分离,这个时候想到了nodejs,于是打算今天做一个代理的demo,其实代码很简单,但是一直卡在一个地方,现在问题解决了,贴上代码和截图。

html

<!DOCTYPE html>
<html>
<head>
    <title>首页</title>
    <meta charset="utf-8">
    <script type="text/javascript" src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
    <style type="text/css">
        .hello{
            color: #428bca;
        }
    </style>
</head>
<body>
    <h3>这是index页面</h3>

    <span class="hello">你可以点击这里</span>

    <script type="text/javascript">
        $(function(){
            var contextPath = ‘http://localhost:3000‘;
            $(‘.hello‘).on(‘click‘,function(){
                $.ajax({
                    type:‘get‘,
                    data:‘click‘,
                    url:contextPath+‘/api/hello‘,
                    success:function(data){
                        console.log(data);
                    },
                    error:function(data){
                        console.log(data);
                    }

                })
            })
        })
    </script>

</body>
</html>

localhost:3000服务端的代码

const express = require(‘express‘);
const proxy = require(‘http-proxy-middleware‘);
const app = express();
app.use(express.static(‘public‘));
//app.use(express.static(‘client‘));

// Add middleware for http proxying
const apiProxy = proxy(‘/api‘, { target: ‘http://localhost:8080‘,changeOrigin: true });
app.use(‘/api/*‘, apiProxy);

// Render your site
app.get(‘/index.htm‘, function(req,res){
     res.sendFile(__dirname+‘/src/index.html‘);
});

app.listen(3000, () => {
  console.log(‘Listening on: http://localhost:3000‘);
});

localhost:8080服务上的代码

var express = require(‘express‘);
var app = express();
app.use(express.static(‘public‘));
var server = app.listen(8080,function(){
    var host = server.address().address;
    var port = server.address().port;
    console.log(‘应用实例,访问地址为 http://%s:%s‘,host,port);
})

app.get(‘/api/hello‘, function(req,res){
     let data = {}
     data["name"] = "lucy";
     data["age"] = "23";
     res.send(data);
});

项目结构截图

  

  

  

时间: 2024-12-28 22:57:11

node+express+http-proxy-middleware做代理的相关文章

运用 node + express + http-proxy-middleware 实现前端代理跨域的 详细实例哦

一.你需要准备的知识储备 运用node的包管理工具npm 安装插件.中间件的基本知识: 2.express框架的一些基础知识,知道如何建立一个小的服务器:晓得如何快速的搭建一个express框架小应用: 3.还需要一些前端的基础小知识,html\css\js\jquery 4.最重要的一点就是知道怎么产生的跨域,要是不知道怎么产生的跨域,如何知道需要去破解它呢? 二.实例的代码分析 场景分析,我本地的域名为<http.localhost:8080>,我要请求的地址是<http.****.

【HAVENT原创】Node Express API 通用配置

启动文件 /app.js: var express = require('express'); var bodyParser = require('body-parser'); var proxy = require('http-proxy-middleware'); var path = require('path'); var index = require('./routes/index'); var data = require('./routes/data'); var app = e

JQuery之proxy实现绑定代理

在javascript中,this指代的对象时常会变化,这会造成程序,混乱,一般做法就是先将this保存在一个变量中,就不怕她变了,我们先看一个小例子 var A = function(){ this.star = functiont(){}; this.beg = function(){ var that = this; $node.click(function(){ //this.start();//这里的this指代的是$node对象 that.start(); }); }; } JQue

Node+Express+node-mysql 实战于演习 全套mysql(增删改查)

最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+node-mysql快速搭建的一套增删改查,视图模板是jade,基本上都是现在能用的到的技术,市面上的实例也特别少,有用的又不新,所以自己写一个 基本工作 首先我们准备一些基本的,因为我是用mysql麻烦可以自己装一下mysql,去官网可以下各种操作系统的安装包. 实例就一张表,下面是这张表的建表语句 S

node+express+mongodb初体验

从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整个学习思路,以下是我的学习分享,是入门级学习体验适合node+mongodb开发小白,node已玩过很久的大神这篇文章可能不适合. 开篇来个例子: 客户端表单页面: <!DOCTYPE HTML> <html lang="en-US"> <head> &

node Express 创建一个web应用

环境安装的node版本是最新的,下个月会发布4.0,把io.js合并进来. [[email protected] myExpressApp]$ node --version v0.12.7 npm和node版本中的npm版本更新是不同布的,我们要经常更新npm包, [[email protected] ~]$ npm install --g npm /home/doctor/opt/node/bin/npm -> /home/doctor/opt/node/lib/node_modules/np

Proxy Design Pattern 代理设计模式

代理设计模式,这个模式很多用于服务器客户端之类的,上网也经常使用代理之类的,想起来感觉是很复杂的,不过这个设计模式本身是很简单的. 就是一个类调用另外一个类的函数,客户调用的是一个类,而实际的工作是由另外一个类做的. 体现这个设计模式的代码: #include <stdio.h> class RealObj { public: virtual void handleReq() = 0; }; class DoSomething : public RealObj { public: void h

node+express实现文件上传功能

在进行node web开发时,我们可能经常遇到上传文件的问题,这一块如果我们没有经验,可能会遇到很多坑,下面我将跟大家分享一下,实现文件上传的一些方式. 一.node+express文件上传的常用方式 通过一段时间的查阅资料.摸索,我发现实现上传的方式有:1.express中间件multer模块(此效率最高,在express3.x原生支持,到了express4.x独立成一个模块了),2.connect-multiparty模块(但现在官方不推荐),3.使用multiparty模块实现(此方法比较

零基础实现node+express个性化聊天室

本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章末尾) 效果图 项目结构 实现功能 登录检测 系统自动提示用户状态(进入/离开) 显示在线用户 支持发送和接收消息 自定义字体颜色 支持发送表情 支持发送图片 下面将一一讲解如何实现 前期准备 node及npm环境.express.socket.io 具体实现 1.将聊天室部署到服务器 先用node搭建一个服务器,部署在localhost:3000端口,先尝试向浏览器发送一个"hello wo