Приложение nodejs принимает заказы файлов от пользователей с разрешением, которое принудительно реализуется с помощью промежуточного программного обеспечения, и использует multer.Как очистить временные файлы с помощью multer
Типичный путь проверки подлинности, проверяет, является ли пользователь разрешен, то делает импорт, например .:
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