DefinitelyTyped/types/express-fileupload/express-fileupload-tests.ts

37 lines
1.1 KiB
TypeScript

import express = require('express');
import { RequestHandler, Request, Response, NextFunction } from 'express-serve-static-core';
import fileUpload = require('express-fileupload');
type UploadedFile = fileUpload.UploadedFile;
const app: express.Express = express();
app.use(fileUpload({debug: true}));
function isUploadedFile(file: UploadedFile | UploadedFile[]): file is UploadedFile {
return typeof file === 'object' && (file as UploadedFile).name !== undefined;
}
const uploadHandler: RequestHandler = (req: Request, res: Response, next: NextFunction) => {
if (typeof req.files === 'object') {
const fileField = req.files.field;
if (isUploadedFile(fileField)) {
console.log(fileField.name);
fileField.mv('/tmp/test', (err) => {
if (err) {
console.log('Error while copying file to target location');
}
});
}
const fileList = req.files.fileList;
if (Array.isArray(fileList)) {
for (const file of fileList) {
console.log(file.name);
}
}
}
};
app.post('/upload', uploadHandler);