Angularjs 带有后端api的Web包开发服务器
我正在为angularjs应用程序使用webpack dev server,我从package.json中的任务启动它,如下所示:Angularjs 带有后端api的Web包开发服务器,angularjs,node.js,webpack,koa,Angularjs,Node.js,Webpack,Koa,我正在为angularjs应用程序使用webpack dev server,我从package.json中的任务启动它,如下所示: "scripts": { "start-api": "node api/server.js", "dev": "webpack-dev-server --env dev --history-api-fallback --inline --progress --port 5000", "start": "npm run dev" },
"scripts": {
"start-api": "node api/server.js",
"dev": "webpack-dev-server --env dev --history-api-fallback --inline --progress --port 5000",
"start": "npm run dev"
},
proxy: {
"/api/*": {
target: "http://localhost:8080"
}
}
我有一个使用膝关节炎的后端API服务器,它运行在同一个端口:
const koa = require('koa');
app.listen(5000);
module.exports.app;
当启动膝关节炎服务器时,它拦截所有请求,我不能浏览到角浏览器应用程序。
<>我应该服务于膝关节炎的所有东西还是有办法让这两个工作在一起? < P>是的,你可以使用WebPACK DEV服务器和你自己的后端API。有两种方法可以做到这一点: 首先,您可以将dev服务器配置为使用。这是我使用的解决方案,对我来说效果很好。我的配置如下所示:
"scripts": {
"start-api": "node api/server.js",
"dev": "webpack-dev-server --env dev --history-api-fallback --inline --progress --port 5000",
"start": "npm run dev"
},
proxy: {
"/api/*": {
target: "http://localhost:8080"
}
}
此配置确保所有以“/api”开头的请求都发送到后端api服务器(在本例中运行于localhost:8080),而不是dev服务器。或者,如果需要,可以使用函数绕过代理,如下所示:
proxy: {
"/api/*": {
target: "http://localhost:8080",
bypass(req, res) {
return (/* some condition */) ? '/index.html' : false;
}
}
}
但我从未使用过它,因为我只需要“/api/*”键就可以确保每个请求都发送到正确的服务器
重要的是,您应该让两台服务器在不同的端口上运行。我通常使用8080作为后端,9090作为开发服务器