繁体   English   中英

使用 API 返回图像 - 纯 NodeJS(无 Express)

[英]Return image using API - Pure NodeJS (no Express)

我试图在用户连接到服务器 ip 地址时返回图像,简而言之,创建一个返回图像的 API。

我找到了这个可行的解决方案,但是现在我不知道为什么它不起作用。

我不想使用 Express 或类似的。

更新

没有res.end()它可以工作,但我不明白为什么。

import http from 'http';
import mime from 'mime';
import fs from 'fs';

const hostname = '127.0.0.1';
const port = 8000;

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'content-type': mime.getType('./tmp/screenshot.png') });
    fs.createReadStream('./tmp/screenshot.png').pipe(res);
    res.end();
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

在:

 fs.createReadStream('./tmp/screenshot.png').pipe(res);

您已经添加了一个pipe在服务器和客户端之间发送数据,并且在完成发送数据后,它会自动触发end()事件。 如果你不想要这种行为。 就这样做

 fs.createReadStream('./tmp/screenshot.png').pipe(res, {end:false});

我希望它对你有帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM