Пытаюсь совершить это, подключая neXt в кастомном адаптере neSt
// custom.adapter.ts
import { ExpressAdapter } from '@nestjs/platform-express';
import { Response } from 'express';
import next from 'next';
const dev = true;
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();
export class NextAdapter extends ExpressAdapter {
constructor() { super() }
render(res: Response, view: string, options: any) {
const { req } = options;
return new Promise<void>(async (resolve) => {
nextApp.prepare().then(async () => {
if (req.query = '/a') {
await nextApp.render(req, res, '/a', req.query)
} else {
handle(req, res);
}
resolve();
});
});
}
}
А подключаю адаптер так:
// main.ts
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { AppModule } from './app.module';
import { NextAdapter } from './next.adapter';
async function bootstrap() {
const app = await NestFactory.create(AppModule, new NextAdapter());
const options = new DocumentBuilder()
.setTitle('Blog Rest API dosc')
.build();
const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup('api', app, document);
await app.listen(3000);
}
bootstrap();
Но, если данный подход и может работать, что-то я делаю не так и, пробуя зайти на страницу, neXt не может найти ее статику и отдает пустую html, а в консоли браузера, соответственно, множество 404-х ошибок о не найденных файлах.
Весь остальной код я выложил на github -
https://github.com/MiiZZo/nest-next/tree/master/ne...
Прошу помочь со сложившейся проблемой. Спасибо.