是否可以使用node+express中的sendFile响应方式向客户端发送多张图片?
Is it possible to use the sendFile response method in node + express to send to the client multiple images?
我试图遍历一个图像目录的所有文件,但是当我从客户端访问路由时,图像相互交叉,我得到这个错误:
RangeNotSatisfiableError: Range Not Satisfiable
at SendStream.error (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:270:31)
at SendStream.send (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:670:19)
at onstat (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:729:10)
at FSReqCallback.oncomplete (node:fs:199:5)
Error: Can't set headers after they are sent.
at SendStream.headersAlreadySent (C:\Users\Utente-XB\Desktop\Javascript Projects\myproject\node_modules\send\index.js:390:13)
at SendStream.send (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:617:10)
at onstat (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:729:10)
at FSReqCallback.oncomplete (node:fs:199:5)
app.get(`/${SECRET_IMAGES_LOCATION}`, (req, res) => {
fs.readdir(path.join(__dirname, "/img"), (err, files) => {
if (err) return console.log(`Unable to open dir: `, err)
files.forEach(file => {
res.sendFile(path.join(__dirname, `/img/${file}`))
})
})
})
不可以,每个 HTTP 请求只能发送一个文件。它是 HTTP 协议。您访问一张 URL 并收到一张图片。
我试图遍历一个图像目录的所有文件,但是当我从客户端访问路由时,图像相互交叉,我得到这个错误:
RangeNotSatisfiableError: Range Not Satisfiable
at SendStream.error (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:270:31)
at SendStream.send (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:670:19)
at onstat (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:729:10)
at FSReqCallback.oncomplete (node:fs:199:5)
Error: Can't set headers after they are sent.
at SendStream.headersAlreadySent (C:\Users\Utente-XB\Desktop\Javascript Projects\myproject\node_modules\send\index.js:390:13)
at SendStream.send (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:617:10)
at onstat (C:\Users\myuser\Desktop\Javascript Projects\myproject\node_modules\send\index.js:729:10)
at FSReqCallback.oncomplete (node:fs:199:5)
app.get(`/${SECRET_IMAGES_LOCATION}`, (req, res) => {
fs.readdir(path.join(__dirname, "/img"), (err, files) => {
if (err) return console.log(`Unable to open dir: `, err)
files.forEach(file => {
res.sendFile(path.join(__dirname, `/img/${file}`))
})
})
})
不可以,每个 HTTP 请求只能发送一个文件。它是 HTTP 协议。您访问一张 URL 并收到一张图片。