重定向API调用

时间:2014-09-09 08:19:51

标签: node.js express gulp

我正在建立一个启动快速服务器的gulp任务。为了使网站正常工作,我需要将来自locahost的请求重定向到某个IP。

这就是我现在所拥有的:

var rewrite = require("connect-url-rewrite");
gulp.task('express', function() {
    var express = require('express');
    var app = express();
    var rules = [
        "^localhost\/(.*)$ 192.168.1.1\/$1"
    ];;

    app.use(require('connect-livereload')({
        port: 35729
    }));

    app.get('api/v1', function(req, res, next) {
        res.redirect('http://192.168.1.1:8090'+req.originalUrl);
    });

    app.use(rewrite(rules));
    app.use(express.static(__dirname));

    app.listen(8090);
});

当我向localhost发出请求时:8090 / api我想重定向到192.168.1.1:8090/api。

如何重写主机名?我唯一能做的就是重写路径名。

更新

当我添加重定向时,请求会被取消。如何将所有标题传递给res对象?

1 个答案:

答案 0 :(得分:1)

使用Gulp代理对后端的AJAX调用的一种简单方法是使用gulp-webserver。例如:

var gulp      = require('gulp'),
    webserver = require('gulp-webserver');

gulp.task('server', function() {
  gulp.src('./public')
    .pipe(webserver({
      port:       8090,
      livereload: true,
      proxies: [
        {
          source: '/api',
          target: 'http://192.168.1.1:8090/api'
        }
      ]
    }));
});

这将代理/api下的所有路线,即。致电http://localhost:8090/api/v1/users/1会将请求代理到http://192.168.1.1:8090/api/v1/users/1

示例中的

./public是Web服务器所服务的静态资产的根文件夹,即。您在Gulpfile中复制已编译资产文件的文件夹。