NodeJS / MEAN.io临时文件

时间:2014-12-17 22:11:25

标签: node.js file filesystems mean

我正在使用nodejs编写文件上传/解析器(MEAN.io是特定的)。功能是上传文件,解析为json,并将内容作为页面返回。上传文件是否通过bodyParser()自动删除?如果是,那么时间表是什么。如果没有,是否有更好的中间件可以自动删除临时文件,即上传的文件?

1 个答案:

答案 0 :(得分:0)

bodyParser()不再处理抓取上传的文件(多部分已于2013年中期被删除),因此本身没有临时文件的问题。

如果您使用其中一个多部分中间件包(busboyformidable等),则必须明确处理临时文件。这通常不会太难:

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);
});

即使这样,有一些东西可以观察过多的临时文件(例如reaptmpwatch)。请记住,大多数中间件将临时文件放在os.tmpdir()中,这可能与/tmp不同!