【问题标题】:NestJs Microservice - Which location do I read files from?NestJs 微服务 - 我从哪个位置读取文件?
【发布时间】:2020-03-31 16:26:01
【问题描述】:

想知道是否有人可以提供帮助?我正在尝试学习如何使用 NestJS 微服务。我已经成功地获得了一个带有 MQTT 传输设置的微服务来接收来自 API 的事件。我正在尝试使用 pug 将事件信息与 html 模板文件合并。但是 pug 找不到模板文件...

  this.logger.info(`Running from dir ${__dirname}`); // /usr/src/app/dist/apps/microservice
  const template = pug.compileFile('../templates/email.pug');

我使用了一个记录器来显示 __dirname,它指的是 dist 目录。这里面有一个文件 main.js。如何从 nestjs 微服务中捆绑和读取模板 pug 文件?

这个post 有一个类似的问题,但它是针对nestjs 应用程序的。

【问题讨论】:

    标签: nestjs pug-loader


    【解决方案1】:

    首先我们需要配置 express 实例

      // main.ts
      const app = await NestFactory.create<NestExpressApplication>(
           AppModule,
      );
      app.setViewEngine('hbs');
    

    将 templates 文件夹与邻居 src 文件夹一起放在根目录

    但是您必须在 dist 文件夹中找到它,因为 Typescript 编译器不会将非 typescript 文件复制到 dist 文件夹,您可以使用 copy-webpack-plugin 但我只是建议您更改此 url(../templates/email.pug) 以便找到位于根目录中的文件夹而不是在 dist 中找到它 希望它会帮助你!如果没有,请提供您的文件结构。 https://docs.nestjs.com/techniques/mvc

    【讨论】:

    • 感谢您回复@har17bar。我使用的是 NestJS 微服务 (docs.nestjs.com/microservices/basics#getting-started),而不是使用 NestFactory.create 方法创建的常用快速应用程序。目前我将哈巴狗模板表示为内存中的字符串。当我有时间会调查pug-loader 以及您从根目录加载文件的建议。再次感谢:)
    猜你喜欢
    • 2020-01-14
    • 2015-06-06
    • 2021-01-12
    • 1970-01-01
    • 2020-11-14
    • 2020-09-22
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    相关资源
    最近更新 更多