1

テスト用にクラウド関数に例をデプロイしようとしましたが、機能しません。私のコードは次のとおりです。

`const functions = require('firebase-functions'); 
const Fastify = require('fastify') 
const fastify = Fastify() 
fastify.get("/",async (req, reply) =>{ 
reply.send({ hello: "world" }) 
}) 
fastify.listen(3000) 
module.exports = { api: functions.https.onRequest(fastify) };`

fastify のサーバーを Express として展開する方法を誰かが知っています

4

1 に答える 1

2

この問題は数日前に Fastify で説明されました。

ここでメンテナーによる完全な説明を確認できます

ここに実用的なソリューションを投稿します:

const functions = require('firebase-functions')
const http = require('http')
const Fastify = require('fastify')

let handleRequest = null

const serverFactory = (handler, opts) => {
  handleRequest = handler
  return http.createServer()
}
const fastify = Fastify({serverFactory})

fastify.get('/', (req, reply) => {
  reply.send({ hello: 'world' })
})

exports.app = functions.https.onRequest((req, res) => {
  req = Object.assign({ip: ''}, {...req});
  fastify.ready((err) => {
    if (err) throw err
    handleRequest(req, res)
  })
})
于 2019-02-11T07:41:32.000 に答える