Express res.sendFile() 函数返回 204 无内容响应

编程入门 行业动态 更新时间:2024-10-08 22:45:16

Express res.sendFile() <a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数返回 204 无内容响应"/>

Express res.sendFile() 函数返回 204 无内容响应

我正在尝试使用 Express 的 sendFile() 函数发送图像。但是目前看来该函数根本没有读取我的文件,并返回 204 无内容响应。

这是我的功能/端点:

@httpGet('/pricereq')
  async getAllPriceChangeReqs(@response() res: express.Response) {
    try {
      const data = await this.priceServicepilePriceChangeRequests();
      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
.

Then

imagePath
变量然后检索基于该部分路径的绝对路径。所以从上面的例子开始,
imagePath
将是
C:\Users\John\Desktop\Project\backend\uploads\receipt-2023-03-11T13-48-41.124Z.jpg

我知道这条路径确实是绝对的,因为下面一行:

console.log(path.isAbsolute(imagePath));
返回 true.

我也知道路径实际上指向一个图像,因为如果我在文件资源管理器中转到它,它会打开图像。如果有任何不同,我正在使用 Windows 10。

我尝试过的事情:

  • 将图像放入与此函数完全相同的目录中,称为
    coffee.jpg
    。获得了绝对路径并尝试发送该图像。我这样做是因为我认为我的
    sendFile()
    函数不喜欢我的图像名称的格式。没用
  • 试过
    res.sendFile(imagePath);
    而不是
    return res.sendFile(imagePath);
  • 尝试了多种调用端点的方式。邮递员和通过浏览器。同样的结果。

我在这里做错了什么?

回答如下:

在 sendFile

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

传递

更多推荐

Express res.sendFile() 函数返回 204 无内容响应

本文发布于:2024-05-13 16:47:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760151.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   内容   res   Express   sendFile

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!