NestJS/ExpressJs 参数过多
NestJS/ExpressJs too many parameters
我正在尝试将文件发送到 NestJS 控制器,但一直收到 too many parameters
异常。我已经安装 bodyParser
并更新了请求大小限制以绕过 request too large
异常。
main.ts:
import { NestFactory } from "@nestjs/core";
import { ApplicationModule } from "./app/app.module";
import * as express from "express";
import * as bodyParser from "body-parser";
async function bootstrap() {
const server = express();
server.use(bodyParser({limit: '50mb'}));
console.log(server);
const app = await NestFactory.create(ApplicationModule, server);
await app.listen(process.env.PORT || 3000);
}
bootstrap();
控制器:
import { Get, Controller, Query, Post, Request } from "@nestjs/common";
import { CloudVisionLogoService } from "./logos.component";
@Controller("logos")
export class LogoRecognitionController {
public constructor(
private readonly _logoRecognition: CloudVisionLogoService
) {
}
@Post()
public async detectLogos(@Request() req) {
console.log(req.files[0]);
// return await this._logoRecognition.detectLogos(imageUri);
}
}
邮递员请求(未显示,图像的二进制附件):
POST /logos HTTP/1.1
Host: localhost:3000
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: c95da069-c602-58a9-1e05-36456a527f02
undefined
以下内容来自 body-parser 文档:
This does not handle multipart bodies, due to their complex and
typically large nature. For multipart bodies, you may be interested in
the following modules:
busboy and connect-busboy
multiparty and connect-multiparty
formidable
multer
我建议你使用 multer 包,因为它很简单,而且很多用户都在使用它
我正在尝试将文件发送到 NestJS 控制器,但一直收到 too many parameters
异常。我已经安装 bodyParser
并更新了请求大小限制以绕过 request too large
异常。
main.ts:
import { NestFactory } from "@nestjs/core";
import { ApplicationModule } from "./app/app.module";
import * as express from "express";
import * as bodyParser from "body-parser";
async function bootstrap() {
const server = express();
server.use(bodyParser({limit: '50mb'}));
console.log(server);
const app = await NestFactory.create(ApplicationModule, server);
await app.listen(process.env.PORT || 3000);
}
bootstrap();
控制器:
import { Get, Controller, Query, Post, Request } from "@nestjs/common";
import { CloudVisionLogoService } from "./logos.component";
@Controller("logos")
export class LogoRecognitionController {
public constructor(
private readonly _logoRecognition: CloudVisionLogoService
) {
}
@Post()
public async detectLogos(@Request() req) {
console.log(req.files[0]);
// return await this._logoRecognition.detectLogos(imageUri);
}
}
邮递员请求(未显示,图像的二进制附件):
POST /logos HTTP/1.1
Host: localhost:3000
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: c95da069-c602-58a9-1e05-36456a527f02
undefined
以下内容来自 body-parser 文档:
This does not handle multipart bodies, due to their complex and typically large nature. For multipart bodies, you may be interested in the following modules:
busboy and connect-busboy
multiparty and connect-multiparty
formidable
multer
我建议你使用 multer 包,因为它很简单,而且很多用户都在使用它