说我有以下 post.js 。
var functions = require('firebase-functions');
const express = require('express');
exports.post = functions.https.onRequest((req, res) => {
//stuff.
});
然后我只想将此函数包含在主文件中,因此当运行需要post.js的index.js时,已经导出了post function
。
在firebase函数的情况下会运行https函数,但现在除非我在require文件中再次明确地执行了exposts.post,否则它不会。
我试过了。
index.js
// here
exports.post = require("./post");
//Another functions ...
exports.user = functions.https.onRequest((req, res) => {
//stuff
});
但正因为如此exports.post = require("./post");
,我得到http://localhost:5000/project-id/us-central1/post-post
,这应该是...us-central1/post
。
此外,是否可以让所需模块从需求文件中引用其变量,以便我不必在 post.js 中对已存在的变量进行操作在index.js中,像" fs"来自文件系统。
感谢。
答案 0 :(得分:0)
Soo好像您正在将帖子导出为属性。您需要将post.js
更改为:
const functions = require('firebase-functions');
const express = require('express');
module.exports = functions.https.onRequest((req, res) => {
//stuff.
});
关于您的问题。这通常是一个不好的做法。每个模块都需要有自己的作用域。因此,应该使用require
在每个文件中要求所需的每个依赖项。如果仍要执行此操作,则可以使用全局变量。 More info