gpt4 book ai didi

node.js - 使用 NodeJS 将文件保存在 Snap (Snapcraft) 中

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:24 24 4
gpt4 key购买 nike

我在快照运行时创建新文件时遇到问题;示例:

1) Snap 启动并检查 ./config/config.json

处的 config.json 文件

2) 如果找不到该文件(这不是应用程序第一次运行),它将创建它 fs.writeFile('./config/config.json', 'My Data', 'utf8 ', (err) => {....})

3)我稍后查找该文件以使用它。

我能够运行我的 Node 应用程序,并且使用 node index.js 时一切都按预期工作

我还可以使用 snap try prime/--devmode 运行,并且一切正常。

运行 snap try prime/ 时,我在系统日志中收到此错误

错误:ENOENT:没有这样的文件或目录,打开“./config/config.json”
它在创建时出错。

对此的任何帮助都会很棒!提前致谢。

最佳答案

我能够通过在 NodeJS 中创建和检查配置文件并将所有逻辑移至安装 Hook ( https://docs.snapcraft.io/build-snaps/hooks ) 来解决此问题。

现在我的安装钩子(Hook)将检查配置文件,如果不存在则创建它,然后我允许 NodeJS 稍后写入该文件,这样我仍然可以在 NodeJS 中而不是在 Bash 中发出所有 HTTP 请求。下面是我的安装 Hook ,不要忘记使其可执行。

此文件位于snap/hooks/install

#!/bin/sh
set -e

CONFIG_FILE=$SNAP_COMMON/config.json

if [ ! -f $CONFIG_FILE ]; then
# File Not Found, Create it
echo '{}' > $CONFIG_FILE
fi

希望这对某人有帮助!

关于node.js - 使用 NodeJS 将文件保存在 Snap (Snapcraft) 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51602975/

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