node.js实现http服务器与浏览器之间的内容缓存操作(2)

const http = require('http'); const url = require('url'); const path = require('path'); const fs = require('fs'); const util = require('util'); const mime = require('mime'); //创建http服务器并监听端口 let server = http.createServer(); server.listen(1234, '0.0.0.0', function () { console.log('开始监听'); }); function sendFile(req, res, filePath, stats) { //设置文件内容类型 res.setHeader('Content-Type', mime.getType(filePath)); //设置缓存失效时间60秒 res.setHeader('Expires', new Date(Date.now() + 60 * 1000).toUTCString()); //设置缓存失效时间60秒 res.setHeader('Cache-Control', 'max-age=60'); //通过管道将文件数据发送给客户端 fs.createReadStream(filePath).pipe(res); } server.on('request', function (req, res) { let {pathname} = url.parse(req.url, true); //获取文件真实路径 let filePath = path.join(__dirname, pathname); //判断文件是否存在 fs.stat(filePath, function (err, stats) { if (err) { return res.end(util.inspect(err)); } if (!stats.isFile()) { return res.end('is not file'); } sendFile(req, res, filePath, stats) }); });

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/31771fb25a58a11fed071f871abbaa19.html