流可以与在许多对象上也使用流的http模块一起使用。
比如说下面这个例子: 创建一个流的mp3服务器。
将一个.mp3格式的音频文件放在本地文件夹下,本例中为July.mp3,在此文件夹下新建一个.js文件,暂且命名为mp3.js,写入下面代码:
// 创建流mp3服务器
// 引入http模块和fs模块
var http=require('http')
var fs=require('fs')
// 创建一个本地服务器,127.0.0.1:3000
http.createServer((req,res)=>{
var mp3='./July.mp3'
var stat=fs.statSync(mp3)
res.writeHead(200,{
'Content-Type':'audio/mpeg',
'Content-Length':stat.size
})
//创建可读流
var readableStream=fs.createReadStream(mp3)
// 管道pipe流入
readableStream.pipe(res);
}).listen(3000)
console.log('服务器运行在 127.0.0.1:3000端口')
终端运行 node mp3
浏览器打开 127.0.0.1:3000
可以看到这是chrome浏览器打开下的效果,自动播放音乐,可以暂停,可以调节音量大小,右侧的下载按钮也能将音频下载到本地。
win10系统自带的Edge浏览器下打开效果