首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将初始化代码放置在Firebase云函数中的位置?

将初始化代码放置在Firebase云函数中的位置?
EN

Stack Overflow用户
提问于 2019-07-13 17:48:23
回答 1查看 219关注 0票数 0

我们计划使用快速-ajv-傲慢-验证中间件来验证我们的api请求。

但是我看到它有一个初始化的异步函数,我想知道我可以在哪里插入swagger json文件。

如果它对每一个请求都这样做,我就觉得它太重了。那么,有人能分享如何实现“一次并永远使用”吗?

下面是关于当前如何使用它的示例。如何加载一次并将其存储在内存中,以避免每次都进行验证?

代码语言:javascript
复制
swaggerValidator.init('test/unit-tests/input-validation/pet-store-swagger.yaml')
.then(function () {
    const app = express();
    app.use(bodyParser.json());
    app.get('/pets', swaggerValidator.validate, function (req, res, next) {
        return res.json({ result: 'OK' });
    });
    app.post('/pets', swaggerValidator.validate, function (req, res, next) {
        return res.json({ result: 'OK' });
    });
    app.get('/pets/:petId', swaggerValidator.validate, function (req, res, next) {
        return res.json({ result: 'OK' });
    });

    app.use(function (err, req, res) {
        if (err instanceof swaggerValidator.InputValidationError) {
            return res.status(400).json({ more_info: JSON.stringify(err.errors) });
        }
    });

   // const server = app.listen(serverPort, function () {});
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-13 17:57:01

在全局范围内运行代码。因为它是异步的,所以它返回一个您可以在函数中使用的承诺,这将确保它已经准备好使用了。

在全球范围内:

代码语言:javascript
复制
const promise = swaggerValidator.init(...).then(...)

然后,在您的功能中:

代码语言:javascript
复制
promise.then(() => {
    // use swaggerValidator
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57021537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档