如何在angularjs-seed app中使用express.js作为代理

时间:2014-04-23 21:08:46

标签: angularjs express cross-domain cors

  

angularjs newbie alert !!!

我需要一个代理来避免CORS&我正在寻求实施express-proxy。我找到了这个解决方案,但我不确定在哪里放置代码。我需要在典型的角度种子应用程序的上下文中的信息。请帮忙。谢谢!

例如:我在哪里放入代码&我该如何启动代理服务器

var express   = require('express'),
    httpProxy = require('http-proxy'),
    app       = express();

var proxy = new httpProxy.RoutingProxy();

function apiProxy(host, port) {
  return function(req, res, next) {
    if(req.url.match(new RegExp('^\/api\/'))) {
      proxy.proxyRequest(req, res, {host: host, port: port});
    } else {
      next();
    }
  }
}

app.configure(function() {
  app.use(express.static(process.cwd() + "/generated"));
  app.use(apiProxy('localhost', 3000));
  app.use(express.bodyParser());
  app.use(express.errorHandler());
});

module.exports = app;

1 个答案:

答案 0 :(得分:0)

我不确定你的确切设置是什么,但是如果你从像yo这样的脚手架解决方案中遵循模板,那么这段代码将放在一个名为server.js的文件下的根目录下。要启动服务器,请转到命令行中的目录并键入node server.js(或者如果随项目一起安装,则可以使用grunt作为任务运行器)。最后,只需打开你的浏览器localhost:3000即可,你应该一切顺利。