gpt4 book ai didi

node.js - 如何在无服务器框架上包含静态文件?

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:06 25 4
gpt4 key购买 nike

我正在使用无服务器框架创建一个 NodeJS 服务来验证提要,因此我向该服务添加了一个架构文件 (.json),但我无法让它工作。它似乎不包含在包中。 Lambda 找不到该文件。

首先,我只是运行 sls package 并检查 zip 内容,但文件不存在。我还尝试将文件包含在:

package:
include:
- libs/schemas/schema.json

但还是不行。

如何确保包中包含静态文件并且可以在 lambda 函数中读取?

最佳答案

这取决于您实际尝试加载文件的方式。

你是用 fs.readFile 还是 fs.readFileSync 加载它?在那种情况下,Serverless 不知道您将需要它。如果您为 Serverless 添加提示以将该文件包含在 bundle 中,请确保您知道它相对于当前工作目录或 __dirname 的位置。

您是否使用 require() 加载它? (你知道你可以使用 require() 来加载 JSON 文件吗?)在那种情况下,Serverless 应该知道你需要它,但你仍然需要确保你的路径是正确的。

如果一切都失败了,那么你总是可以使用肮脏的 hack。例如,如果您有一个文件“x.json”,其中包含:

{
"a": 1,
"b": 2
}

然后您可以将其更改为包含以下内容的 x.js 文件:

module.exports = {
"a": 1,
"b": 2
};

您可以像加载任何其他 .js 文件一样加载它,但这是一种 hack。

关于node.js - 如何在无服务器框架上包含静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48562937/

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