如何使用proxy.conf.json将数据返回到Angular应用程序?

Cod*_*ein 0 proxy json webpack angular

我在开发Angular应用程序时正在使用proxy.conf.json。

但是,对于某些端点,我希望在调用时仅返回一个JSON对象。目前,我的proxy.conf文件重定向到本地运行的后端,该后端返回这些JSON。但是我宁愿不运行后端服务器,而只是从proxy.conf.json返回JSON。

这有可能吗?

Ale*_*esD 7

使用proxy.conf.js代替可以proxy.conf.json。然后,您可以指定一个绕过函数,您可以在其中直接返回响应。代理的angular-cli文档中对此进行了提及,但并未提供很多详细信息。这是一个示例proxy.conf.js文件。

const PROXY_CONFIG = {
  '/api': {
    'target': 'http://localhost:5000',
    'bypass': function (req, res, proxyOptions) {
      switch (req.url) {
        case '/api/json1':
          const objectToReturn1 = {
            value1: 1,
            value2: 'value2',
            value3: 'value3'
          };
          res.end(JSON.stringify(objectToReturn1));
          return true;
        case '/api/json2':
          const objectToReturn2 = {
            value1: 2,
            value2: 'value3',
            value3: 'value4'
          };
          res.end(JSON.stringify(objectToReturn2));
          return true;
      }
    }
  }
}

module.exports = PROXY_CONFIG;
Run Code Online (Sandbox Code Playgroud)

您需要在旁路函数中重新检查url,因为所有/api请求都将调用该url,然后直接为您希望返回的响应直接返回一个响应,其他响应仍将重定向到目标地址。您返回true来告诉代理请求已完成。

确保在运行时指定正确的文件ng serve --proxy-config proxy.conf.js