Я использую express как фреймворк, а Typescript как язык. Я хочу загрузить файл с помощью модуля multer. Но я не могу загрузить. У меня есть маршруты с файлом product.ts
и Server.ts
с конфигурацией сервера.
Routes / product.ts
import { Request, Response, Router, NextFunction } from "express";
import { ProductService } from '../services/product'
import multer from 'multer';
let prosvc = new ProductService()
const router = Router();
var upload = multer({ dest: 'uploads/' })
router.post("/addfile",upload.array('images',1), async (req: Request, res: Response,next :NextFunction) => {
try {
console.log("request" )
res.send({data:req.file})
} catch (e) {
console.log(e);
res.sendStatus(400);
}
});
Server.ts
import express, { Request, Response, NextFunction } from "express";
import "express-async-errors";
import BaseRouter from "./routes";
// Init express
const app = express();
// Add APIs
app.use("/api", BaseRouter);
export default app;
tsConfig. js
{
"compilerOptions": {
"baseUrl": "./",
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"importHelpers": true,
"module": "commonjs",
"outDir": "dist",
"removeComments": true,
"sourceMap": true,
"strict": true,
"target": "es6",
"moduleResolution": "node",
"strictPropertyInitialization": false,
"noImplicitAny":false,
"paths": {
"@shared/*": ["src/shared/*"],
"@server": ["src/Server"]
},
"types": ["node"],
"typeRoots": ["node_modules/@types"]
},
"include": ["src/**/*.ts", "spec/**/*.ts"],
"exclude": ["src/public/"]
}
index.ts
import "./LoadEnv"; // Must be the first import
import app from "@server";
import "reflect-metadata";
const port = Number(process.env.PORT || 3001);
app.listen(port, () => {
console.log("Express server started on port: " + port);
});
Папка загрузок создается, но файл не загружается, и у меня тоже нет ошибок. Пожалуйста, дайте мне знать, в чем проблема.