Matthew C.
—When using Multer (which is a Node.js middleware for handling multipart/form-data
) with TypeScript, you may encounter the following error:
"Namespace 'global.Express' has no exported member 'Multer'"
This error indicates that Multer types aren’t available in the app.
Install the Multer types as a development dependency:
npm install --save-dev @types/multer
If you’re using the built-in Multer module in NestJS for file uploads, use the Express.Multer.File
type after installing the Multer types. You can then import the Multer file type from Express.js:
import { Express } from 'express'; // ... @Post('upload') @UseInterceptors(FileInterceptor('file')) uploadFile(@UploadedFile() file: Express.Multer.File) { console.log(file); } // ...
If your server build works in a macOS or Windows environment but not in a Linux environment, it may be a filename case sensitivity issue. For example, the following Multer import works in macOS or Windows but not in Linux:
import Multer from "Multer";
Use lowercase, not sentence case, for the Multer import, as the Linux file system is case sensitive:
import multer from "multer";
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.