函数返回 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 无内容响应
发布评论