标签: fastify

如何为 React 提供 index.html 并处理相同路径的路由?

如果用户尚未下载 react_app.js(第一次来),则使用 react 您需要在任何路由中提供包含 react_app.js 的 index.html。

然后你需要从 react_app.js 提供一些 api 调用,但是如果你对 GET 使用相同的 url,假设你会得到 API 调用响应,而不是带有 react_app.js 的 index.html。

解决这个问题的方法是什么?仅使用某些前缀进行 api 调用并仅在未找到路由时发送 index.html?

我的代码:

fastify.register(require('fastify-static'), {
  root: path.join(__dirname, './static')
})

fastify.route({
  method: 'GET',
  url: '/',
  handler: async (req, res) => {
    res.send('you will get api call answer but you need to serve index.html with react_app.js first!!!!')
  }
})
Run Code Online (Sandbox Code Playgroud)

node.js express reactjs fastify

1
推荐指数
1
解决办法
1273
查看次数

NestJS 中间件未执行

从模块连接时,NestJS 类或功能中间件不会运行。它也不适用于单个路径、控制器或每个路径。从 main.ts 连接功能中间件工作正常。

//main.ts
import { ValidationPipe } from '@nestjs/common'
import { NestFactory } from '@nestjs/core'
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'
import { AppModule } from './app.module'

declare const module: any

async function bootstrap() {
  const app = await NestFactory.create<NestFastifyApplication>(AppModule, new FastifyAdapter())

  app.useGlobalPipes(new ValidationPipe())

  await app.listen(2100)

  if (module.hot) {
    module.hot.accept()
    module.hot.dispose(() => app.close())
  }
}
bootstrap()
Run Code Online (Sandbox Code Playgroud)
//app.module.ts
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'
import { AuthMiddleware } from './middleware/auth.middleware'
import { UserModule } from './user/user.module' …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript nestjs fastify

1
推荐指数
1
解决办法
1202
查看次数

Nestjs - 使用 fastify multipart 上传文件

我正在尝试使用 fastify 适配器使用 nestjs 上传多个文件。我可以按照此链接中的教程进行操作 -关于上传的文章

现在这使用 fastify-multipart 完成文件上传的工作,但我无法在上传之前使用请求验证,例如,这是我的规则文件模型(后来我想保存到 postgre)

    import {IsUUID, Length, IsEnum, IsString, Matches, IsOptional} from "class-validator";
    import { FileExtEnum } from "./enums/file-ext.enum";
    import { Updatable } from "./updatable.model";
    import {Expose, Type} from "class-transformer";
    
    export class RuleFile {
      @Expose()
      @IsUUID("4", { always: true })
      id: string;
    
      @Expose()
      @Length(2, 50, {
        always: true,
        each: true,
        context: {
          errorCode: "REQ-000",
          message: `Filename shouldbe within 2 and can reach a max of 50 characters`,
        },
      })
      fileNames: string[];
    
      @Expose()
      @IsEnum(FileExtEnum, …
Run Code Online (Sandbox Code Playgroud)

file-upload nestjs fastify

0
推荐指数
2
解决办法
2935
查看次数

Fastify 模式下 NestJS 动态模板渲染 - res.render 不是函数

我觉得Model-View-Controller @ docs.nestjs.com没有涵盖这个用例 - 有“动态模板渲染”部分 + Fastify,但两者组合在一起似乎效果不佳。

我尝试过以下片段:

import { Get, Res } from '@nestjs/common'

@Get()
index(@Res() res) {
  if (isFoo()) {
    return res.render('template1.html', {var1: 'foo'})
  } else {
    return res.render('template2.html', {var2: 'bar'})
  }
}
Run Code Online (Sandbox Code Playgroud)

它失败了

类型错误:res.render 不是函数

有什么办法可以解决吗?

需要明确的是,我不使用的原因@Render是因为我需要该操作中的条件逻辑。

nestjs fastify nestjs-fastify

0
推荐指数
1
解决办法
1707
查看次数

使用全局 fastify-cli (mac) 时节点“错误:找不到模块 'node:process'”

我正在设置一台新的 mac 开发机器,并安装了 node、npm 和 nvm。在单个项目目录中一切看起来都很好。但是,当尝试安装和使用时fastify-cli,我收到错误:

internal/modules/cjs/loader.js:892
  throw err;
  ^

Error: Cannot find module 'node:process'
Require stack:
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/lib/widget/markdown.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/index.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/docs.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs:3:17)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/lib/widget/markdown.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/index.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/docs.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/cli.js'
  ]
}
Run Code Online (Sandbox Code Playgroud)

重现步骤:

  1. $ npm install --global fastify-cli(成功)
  2. $ fastify …

node.js npm node-modules fastify

0
推荐指数
1
解决办法
8166
查看次数

使用 node/fastify 出现错误不支持的媒体类型:application/x-www-form-urlencoded

索引.js

fastify.get("/paynow", (request, reply) => {
let data = {
  TXN_AMOUNT: '10', // request amount
  ORDER_ID: 'ORDER_123455', // any unique order id 
  CUST_ID: 'CUST_1238w4' // any unique customer id      
}

// create Paytm Payment
paytm.createPayment(config, data, function (err, data) {
  if (err) {
    // handle err
  }

  //store the url and checksum
  let url = data.url;
  let checksum = data.checksum;

  // delete it from data object
  delete data.url;
  delete data.checksum;

  /* Prepare HTML Form and Submit to Paytm */
  reply.type('text/html'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js paytm fastify fastify-multipart

-1
推荐指数
1
解决办法
2372
查看次数