node生成缓存文件模块tmp,为了减少服务器的使用容量,链接服务器下载文件一定要用临时文件,假如,每一个文件下载都先在服务器上生成再进行访问,1000个用户,就会有1000个文件存储再服务器,再调用1000次文件删除的方法,这大大加大了服务器的压力。因此通过npm中的tmp模块(临时文件)来进行文件下载,会减少很多的服务器压力。
临时文件生成
1 2 3 4 | tmp.file({ mode: 0o644, prefix: 'prefix-' , postfix: '.txt' }, function _tempFileCreated(err, path, fd, cleanupCallback) { if (err) throw err; }); |
这段代码生成了模式为0o644,前缀为prefix-,后缀为.txt的文件,所生成的文件名如prefix-xxxxxxxx.txt的文本文件。
path为对应的文件的临时存储路径
cleanupCallback为清除临时文件用法,即调用就可以清除。
临时文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 | fs.writeFile(path, '这是第一行' , function (err){ if (err) console.log( '写文件操作失败' ); else console.log( '写文件操作成功' ); fs.readFile(path, function (err, data){ res.set({ 'Content-Type' : 'application/octet-stream' , 'Content-Disposition' : 'attachment; filename=upload.txt' }); res.end(data) cleanupCallback(); }) }); |
再通过fs模块进行文件下载,读取看是否文件生成对应的内容。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步