Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 带有后端api的Web包开发服务器_Angularjs_Node.js_Webpack_Koa - Fatal编程技术网

Angularjs 带有后端api的Web包开发服务器

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" },

我正在为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"
  },
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作为开发服务器