我正在使用nodejs编写文件上传/解析器(MEAN.io是特定的)。功能是上传文件,解析为json,并将内容作为页面返回。上传文件是否通过bodyParser()自动删除?如果是,那么时间表是什么。如果没有,是否有更好的中间件可以自动删除临时文件,即上传的文件?
答案 0 :(得分:0)
bodyParser()
不再处理抓取上传的文件(多部分已于2013年中期被删除),因此本身没有临时文件的问题。
如果您使用其中一个多部分中间件包(busboy,formidable等),则必须明确处理临时文件。这通常不会太难:
app.post('/upload', function(req, res) {
var form = new formidable.IncomingForm();
var body = "No file uploaded";
form.on('file', function(name, file) {
try {
body = JSON.parse(fs.readFileSync(file.path));
} catch (e) {console.log(e)}
fs.unlink(file.path);
});
form.on('end', function(){
res.json(body);
});
form.parse(req);
});
即使这样,有一些东西可以观察过多的临时文件(例如reap或tmpwatch)。请记住,大多数中间件将临时文件放在os.tmpdir()
中,这可能与/tmp
不同!