ExpressJS:将请求直接传送到另一台服务器而不将其存储在内存中

vis*_*esh 6 node.js express

为了分离我的前端和后端代码,我将前端(angular 应用程序)移动到一个简单的 expressJS 应用程序。后端是一个非常复杂的 Grails 应用程序,仅提供 API。

为了解决 CORS(因为这两个服务器都在不同的 URL 上运行),我在 express 应用程序中使用了这个简单的代码 -

const express = require("express")
var request = require("request")
const apiServer = process.env.API_URL
app.use("/api/*", function(req, res) {
  var url = apiServer + req.originalUrl
  req.pipe(request(url)).pipe(res)
});
Run Code Online (Sandbox Code Playgroud)

这很好用。但是,我认为它在管道之前读取内存中的整个请求正文。我不希望这样,因为我有一些 API 可以上传文件,并且首先在 express 应用程序的内存中读取这些文件只会消耗时间和内存。

我想让我的 express 服务器非常轻量级,因为它的唯一目的是提供静态资源(angular app)