vue.js 使用带有嵌套的Nuxt 3

qyzbxkaa  于 2023-02-09  发布在  Vue.js
关注(0)|答案(1)|浏览(204)

目前我们可以建立如下的nuxt。但是不能处理路线。我们基本上想从雀巢提供nuxt应用程序。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.js';
import { loadNuxt } from 'nuxt3';
import { buildNuxt,  Resolver } from '@nuxt/kit';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  // Check if we need to run Nuxt in development mode
  const isDev = process.env.NODE_ENV !== 'production'

  // Get a ready to use Nuxt instance
  const nuxt = await loadNuxt({ rootDir: 'src/client-app/' })

  // Enable live build & reloading on dev
  if (isDev) {
    buildNuxt(nuxt)
  }

  await app.listen(3001);
}
bootstrap();

下面是下一个(React)等效代码,这是工作,并试图实现在Nuxt 3.

https://github.com/hnviradiya/contact-list/blob/e38a72167d5710fcc9f3ed9718fa9bfe8ebb7d00/src/server/client-app/client-app.service.ts#L25

import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { IncomingMessage, ServerResponse } from 'http';
import createServer, { NextServer } from 'next/dist/server/next';

@Injectable()
export class ClientAppService {
  private nextServer: NextServer;

  constructor(private configService: ConfigService) {}

  async onModuleInit(): Promise<void> {
    try {
      this.nextServer = createServer({
        dev: this.configService.get<string>('NODE_ENV') !== 'production',
        dir: './src/client',
      });
      await this.nextServer.prepare();
    } catch (error) {
      console.error(error);
    }
  }

  handler(req: IncomingMessage, res: ServerResponse) {
    return this.nextServer.getRequestHandler()(req, res);
  }
}

在nuxt2中有nuxt.render(req, res)nuxt.renderRoute(route, context),但这些方法在nuxt3中不可用。
https://nuxtjs.org/docs/internals-glossary/nuxt/
那么如何通过NestJs服务nuxt应用程序。
以下是nuxt3代码所在的repo,但它不服务于nuxtapp。
https://github.com/hnviradiya/nest-nuxt

tcomlyy6

tcomlyy61#

虽然Nestjs是一个很棒的服务器,但它的Angular 风格@decorators和模块化设置与Nuxt 3的简单搭建方式大不相同。
这个概念感觉像是个坏主意。

相关问题