NestJS CORS 跨域資源共享(Cross-Origin Resource Sharing)
NestJS 是一個基於 TypeScript 的 Node.js 框架,可以用於構建高效、可擴展的企業級應用程序。它提供了一個模塊化的結構,可以讓您將應用程序的不同部分模塊化,並提供了一個基於 Dependency Injection 的容器,可以讓您將應用程序的不同部分聯繫起來。
NestJS 提供了一個強大的 CORS 機制,可以讓您輕鬆地在應用程序中實現跨域資源共享(Cross-Origin Resource Sharing,CORS)。CORS 是一種安全機制,可以讓瀏覽器和伺服器之間進行安全的資源共享。它允許瀏覽器從不同的域名請求資源,而不會受到同源政策的限制。
在 NestJS 中,您可以使用 @nestjs/common 模組中的 CorsOptions 類來配置 CORS。您可以使用 CorsOptions 類來設置 CORS 的各種選項,例如允許的域名、允許的請求方法、允許的請求頭等。
要在 NestJS 中使用 CORS,您需要在應用程序的 main.ts 文件中導入 CorsOptions 類,並將其傳遞給 NestFactory.create() 方法:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { CorsOptions } from '@nestjs/common';
const corsOptions: CorsOptions = {
origin: 'http://example.com',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false,
};
async function bootstrap() {
const app = await NestFactory.create(AppModule, { cors: corsOptions });
await app.listen(3000);
}
bootstrap();
在上面的示例中,我們將 CorsOptions 類傳遞給 NestFactory.create() 方法,以便將 CORS 選項應用於應用程序。在這個示例中,我們將允許來自 http://example.com 的請求,並允許 GET、HEAD、PUT、PATCH、POST 和 DELETE 方法。
此外,您還可以使用 @nestjs/cors 模組來配置 CORS。該模組提供了一個 CorsMiddleware 類,可以讓您輕鬆地將 CORS 配置添加到應用程序中:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { CorsMiddleware } from '@nestjs/cors';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(CorsMiddleware);
await app.listen(3000);
}
bootstrap();
在上面的示例中,我們將 CorsMiddleware 類傳遞給 app.use() 方法,以便將 CORS 配置添加到應用程序中。
此外,您還可以使用 @nestjs/cors 模組中的 CorsOptionsFactory 類來配置 CORS。該類提供了一個 create() 方法,可以讓您輕鬆地將 CORS 配置添加到應用程序中:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { CorsOptionsFactory } from '@nestjs/cors';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(CorsOptionsFactory.create());
await app.listen(3000);
}
bootstrap();
在上面的示例中,我們將 CorsOptionsFactory.create() 方法傳遞給 app.use() 方法,以便將 CORS 配置添加到應用程序中。
總結來說,NestJS 提供了一個強大的 CORS 機制,可以讓您輕鬆地在應用程序中實現跨域資源共享(Cross-Origin Resource Sharing,CORS)。您可以使用 @nestjs/common 模組中的 CorsOptions 類和 @nestjs/cors 模組中的 CorsMiddleware 類和 CorsOptionsFactory 類來配置 CORS。
閱讀全文