我的nodejs應用程序接受來自具有由快速中間件強制執行的權限的用戶的文件上載,並且它使用multer。如何使用Mulder清理臨時文件
典型航線驗證,檢查用戶是否被允許,那麼做進口,例如:
router.post('/:id/import', passport.authenticate('jwt', { session: false }), permit('admin'), function(req, res, next) {
MyClass.doImport(req.file.path).then(function(result) {
res.json(result);
}).catch(function(error) {
res.status(500).json(error);
});
});
如果沒有錯誤,這個偉大工程,並導入功能刪除文件。但是如果出現錯誤(如無效或不允許的用戶),則會創建上傳的文件並保留在磁盤上。
我想不在磁盤上創建任何文件,直到所有權限中間件都成功運行。我已經使用鏈multer非常結束嘗試,即:
var app = express();
app.use(// ...
app.use(passport.initialize());
app.use(multer({dest:'./tmp/'}).single('file'));
但一個auth錯誤,我還是最終在TMP文件。
如何避免在所有其他中間件通過之前在磁盤上創建文件?
如果這是不可能的,我可以添加一箇中間件函數,該函數僅在存在文件附件且上游存在錯誤時才運行?
這樣做了。謝謝!我忘記了那些路由器方法真的只是中間件鏈的終點。 – user1272965