Nestjs API Gateway: Get Works, но просьбы Post Vange DefinedlineJavascript

Форум по Javascript
Ответить
Anonymous
 Nestjs API Gateway: Get Works, но просьбы Post Vange Definedline

Сообщение Anonymous »

Я строю архитектуру микросервисов с использованием NESTJS, и у меня есть шлюз API, который запрашивает прокси запрашивает различные сервисы (заказ, электронная почта, пользователь). < /p>
Все работает нормально для запросов на получение запросов , но запросы публикации в службу электронной почты висят на неопределенный срок и в конечном итоге сбой с развеванием. Br />

Код: Выделить всё

    export const routes = {
Order: 'http://localhost:3001/api/Order',
Email: 'http://localhost:3002/api/Email',
User: 'http://localhost:3003/api/User',
};
< /code>
Вот мой контроллер API Gateway, который запрашивает прокси: < /p>
    @Controller()
export class AppController {
constructor(private readonly appService: AppService) {}

@All('api/:service/*')
async proxy(
@Param('service') service: string,
@Req() req: Request,
@Res() res: Response,
@Body() body: any,
) {
console.log('Service:', service);
const path = req.url.replace(`/api/${service}`, '');

try {
const response = await this.appService.forwardRequest(req, res, body, path,   service);
res.status(response.status).json(response.data);
} catch (error) {
console.error('Proxy request failed:', error);
return res.status(500).json({ message: 'Error forwarding request' });
}
}
}
My Api Gateway Service переправит запросы с использованием Axios (@nestjs/axios):

Код: Выделить всё

    async forwardRequest(
req: Request,
res: Response,
body: any,
path: string,
service: string,
): Promise {
const baseURL = routes[service];
const url = baseURL + path;
const configuredHeaders = this.httpHelper.configureHeaders(req.headers);

console.log('Forwarding request:', {
method: req.method,
url,
headers: configuredHeaders,
body: JSON.stringify(body),
});

return lastValueFrom(
this.http.request({
method: req.method,
url: url,
data: body,
headers: configuredHeaders,
timeout: 10000, // 10 seconds
}),
);
}
Проблема
✅ Запросы получают запросы отлично! Публиковать запросы).
✅ Но если я позвоню http: // localhost: 3002/api/email/sendemail напрямую, он работает нормально.
Когда я создал тестовую конечную точку В моей почтовой службе: < /p>
@Get('SendEmail')
sendEmailTest() {
console.log('Test log!');
return { message: 'Email sent!' };
}
< /code>
Он работал нормально через шлюз API, что означает, что проблема предназначена только для запросов POST. ✅ Проверено, получает ли служба электронной почты запрос → он не (так что проблема, вероятно, находится в шлюзе API).
✅ включено Express.json () и Express.UrlencoDed в main.ts → все еще висит.

Подробнее здесь: https://stackoverflow.com/questions/794 ... definitely
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»