javascript expressres.sendFile()函数返回一个204无内容响应

zc0qhyus  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(95)

我尝试使用Express的sendFile()函数发送图像。但目前似乎该函数根本没有阅读我的文件,并返回204无内容响应。
下面是我的函数/端点:

@httpGet('/pricereq')
  async getAllPriceChangeReqs(@response() res: express.Response) {
    try {
      const data = await this.priceService.compilePriceChangeRequests();
      const imagePath = path.resolve(data);
      console.log(path.isAbsolute(imagePath));
      console.log(imagePath);
      return res.sendFile(imagePath);
    } catch (err) {
      return res.status(400).send({ error: err.message });
    }
  }

这里的data变量检索存储在数据库中的部分路径。例如uploads/receipt-2023-03-11T13-48-41.124Z.jpg
然后,imagePath变量根据该部分路径检索绝对路径。
我知道这条路径确实是绝对的,因为下面这行:console.log(path.isAbsolute(imagePath));返回true。
我也知道路径实际上指向一个图像,因为如果我在文件资源管理器中打开它,它会打开图像。我使用Windows 10,如果这有任何区别的话。
我尝试过的事情:

  • 将一个图像放入与这个名为coffee.jpg的函数完全相同的目录中。获取该图像的绝对路径并尝试发送该图像。我这样做是因为我认为我的sendFile()函数不喜欢我的图像名称的格式。不起作用
  • 已尝试res.sendFile(imagePath);而不是return res.sendFile(imagePath);
  • 已尝试多种方法调用终结点。Postman和通过浏览器。结果相同。

我到底做错了什么?

3duebb1j

3duebb1j1#

将第二个参数作为{ root : __dirname}{ root: 'your-root-location'}传入sendFile

相关问题