在 Firebase Cloud Functions 中使用 express 和 consign 进行路由

Posted

技术标签:

【中文标题】在 Firebase Cloud Functions 中使用 express 和 consign 进行路由【英文标题】:Routing with express and consign in Firebase Cloud Functions 【发布时间】:2017-07-18 09:11:05 【问题描述】:

我想在我的 Express 应用中实现路由,该应用将通过云功能公开。

这是我的函数/index.js 文件:

const functions = require('firebase-functions');
const express = require('express');
const consign = require('consign');

const app = express();

  consign()
    .include("./routes")
    .into(app);

exports.api = functions.https.onRequest(app);

这是我的 ./routes/index.js 文件

module.exports = app => 
    app.get('/', (req,res)=>
    res.json(status:"success");
)

所以我猜这段代码足以托管一个云功能,当我调用这个托管 url https://us-central1-appname-79516.cloudfunctions.net/api(由于隐私原因更改了 url)它应该返回响应为 "status":"success":

当我调用上面的 url 时,它会显示错误“错误:无法处理请求”

帮助我如何在云功能中使用快递和寄售模块

【问题讨论】:

您是否尝试过在没有寄售的情况下托管快递应用,看看是否先行? 是的,它成功了!! 所以你是说在同一个app中添加consign的那一刻就有问题了? 【参考方案1】:

这有点晚了,但我想仍然相关。所以,这就是我所做的:

consign(
  cwd: 'src'
)
.include("routes")
.into(app)

CWD 设置基本目录,如文档中所述:

Consign will simply use a relative path from your current working directory, however, sometimes you don't want heavily nested files included in the object chain, so you can set the cwd

https://github.com/jarradseers/consign

在我的例子中,src 是包含我的 firebase 函数代码 (functions/src) 的文件夹。

希望对你有帮助!

【讨论】:

以上是关于在 Firebase Cloud Functions 中使用 express 和 consign 进行路由的主要内容,如果未能解决你的问题,请参考以下文章

在 TypeScript 中为 Firebase Cloud Function 配置 mailgun

在 Firebase Cloud Function 中发出 Youtube Data API 请求

从请求中获取用户信息到 Firebase 中的 Cloud Function

Firebase:Firestore 未在 Cloud Function 的计划函数中更新数据

Firebase Cloud Function在特定时间后自动删除数据[重复]

Firebase Cloud Function 在 .get() 完成之前结束