转自:http://www.jb51.cc/article/p-ocvcqeel-d.html
事情的起因
由于最近在使用Angular + node
开发,采取的办法一直都是约定好接口,然后node
实现,再编写前端。但是这样有一个很麻烦的问题:编写前端的时候无法调用接口,不能很好地测试,只能一口气写完再编译后放到后端来测试。经常会因为解决一些小的问题而反复的编译、调试,浪费很多不必要的时间。
解决方案
偶然发现webpack-dev-server
可以实现代理请求(把指定的url规则转发到其他地址),所以就试了一下。由于项目使用了Angular-cli
构建,并没有webpack
配置文件,悲伤。于是又去google上搜索了一圈Angular-cli
,找到了Angular-cli
实现代理的解决方案。
在项目目录下创建文件proxy.conf.json
:
{ "/api": { "target": "http://localhost:3000","secure": false } }
/api
为代理规则,因为我接口都是以api
开头的,大家可以根据自己的实际情况设置target
为目标服务地址,比如一个get
请求的地址为http://localhost:4200/api/cards/all
会被代理为http://localhost:3000/api/cards/all
secure
为是否开启ssl
验证,在这里设置为false
接下来只需要启动node
服务,再使用ng serve --proxy-config proxy.conf.json
来启动自己的Angular
项目就可以完美实现代理了,简直不要太好用,以前的方法简直是蠢爆了!