我正在编写自己的http模块(我知道node.js包含一个) 我正在使用网络模块 当我收到静态二进制(图片)文件的请求时,如何使用二进制文件生成HTTP响应? 当我为文本文件(例如.html文件)执行此操作时,它只是工作..
答案 0 :(得分:3)
如果您使用的是网络模块,则可能使用的代码如下:
var server = net.createServer(function (socket) {
});
什么是套接字?它代表网络上的数据流。 在对象中,Socket是一个WriteableStream,在这里阅读更多:http://nodejs.org/docs/v0.6.5/api/streams.html
当您阅读文件时,您可以将内容作为String,Buffer或ReadableStream
获取将文件作为流读取的最简单方法是使用以下函数:http://nodejs.org/docs/v0.6.5/api/fs.html#fs.createReadStream 例如
var fileAsAstream = fs.createReadStream(filePath);
为了将二进制读取流的内容传输到写入流,您可以使用管道函数http://nodejs.org/docs/v0.6.5/api/streams.html#stream.pipe函数 e.g。
fileAsAstream.pipe(socket);