gpt4 book ai didi

javascript - 在 Firebase 云函数中哪里放置初始化代码?

转载 作者:行者123 更新时间:2023-12-02 23:19:14 25 4
gpt4 key购买 nike

我们计划使用express-ajv-swagger-validation中间件来验证我们的 API 请求。

但我看到它有一个用于初始化的异步函数,并且想知道我可以在哪里使用 swagger json 文件进行初始化。

如果它对每个请求都进行 init,我认为它太重了。那么,有人可以分享一下如何实现“一次初始化,永远使用”吗?

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

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 () {});
});

最佳答案

在全局范围内运行您的代码。由于它是异步的,因此它会返回一个可在函数中使用的 promise ,以确保它已准备好使用。

在全局范围内:

const promise = swaggerValidator.init(...).then(...)

然后,在你的函数内部:

promise.then(() => {
// use swaggerValidator
})

关于javascript - 在 Firebase 云函数中哪里放置初始化代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com