NestJS + NuxtJS(在TypeScript中)

时间:2018-07-08 17:39:57

标签: typescript nuxt.js

我目前正在寻找一个已经使用TypeScript用NestJS(背面)和NuxtJS(正面)以及SSR(服务器端渲染)准备入门套件的人。

我想学习这两种技术,但是我没有找到足够的帮助来从头开始构建一个项目。

我对Nuxt感兴趣的是这种创建页面的简便性,对于Nest,它也非常完整且易于创建API。

我在Github上找到了一些存储库,其中包含很多旧内容,而软件包更新使一切都变了。

我创建了我的适当项目:https://github.com/pirmax/nuxt-and-nest 但是,要么API路由在https://localhost:3000/api上运行,要么如果我删除了NuxtJS集成,则Nuxt路由可以工作。

async function bootstrap() {
  const nuxt = await new Nuxt(config);
  config.dev = !(process.env.NODE_ENV === "production");
  if (config.dev) {
    await new Builder(nuxt).build();
  }
  const app = await NestFactory.create(AppModule);
  await app.setGlobalPrefix("api");
  await app.listen(3000, () => console.log("Application is listening on port 3000."));
  await app.use(nuxt.render);
}

bootstrap();

现在,我遇到此错误:

  

在使用{runInNewContext:false时捆绑输出应该是一个函数   }。

如果刷新页面:

  

运行器不是功能

2 个答案:

答案 0 :(得分:0)

也许这会有所帮助:

import { NestFactory } from '@nestjs/core';
import { ServerModule } from './server.module';

const { Nuxt, Builder } = require('nuxt');
const config = require('../nuxt.config.js');
config.dev = process.env.NODE_ENV !== 'production';

async function bootstrap() {
     const app = await NestFactory.create(ServerModule);
     const nuxt = new Nuxt(config);
     const { host, port } = nuxt.options.server;

     if (config.dev) {
         const builder = new Builder(nuxt);
         await builder.build();
     } else {await nuxt.ready();}

     app.use(nuxt.render);

     await app.listen(port, host);
}
bootstrap();

答案 1 :(得分:0)

如果您使用 nest 作为连接中间件,您可以通过 servermiddleware nuxt 配置选项将 nest 与 nuxt 结合使用。也许这个要点可以给你一个粗略的想法: https://gist.github.com/1isten/ed286c3980523f4a4f9b6b627f540091