Node-Red 无法打开 SQLite 数据库

Node-Red failed to open SQLite database

我正在尝试从 Node-Red 访问 SQLite 数据库。 Node-Red 无法打开数据库。我的 OS 是 Ubuntu 18.04.3.

下面提供了我的流程和 SQLite 节点定义。注入和调试节点只有默认值。我保持它非常简单,因为这是我第一次尝试使用 Node-Red 的 SQLite。

部署流程时,出现以下错误:

数据库对所有用户都有读写执行权限。它在我的机器上是本地的,我是唯一一个使用它的人。

知道是什么导致了这个问题吗?

好的,这就是我解决问题的方法。

我在打开 .csv 文件时也遇到了问题。通过查看其他类似的帖子,这似乎是一个无法解决的用户权限问题,即使通过 chmod.

更改文件权限也是如此

我使用不同的媒介安装了所有节点组件:

  • 命令行中的 nodejs 和 npm
  • node-red 来自 Ubuntu 软件中心
  • node-red-dashboard 和 node-red-node-sqlite 来自 node-red 浏览器。

这些不同的安装介质可能导致权限问题。所以我卸载了所有东西。

然后我从命令行重新安装了所有东西。节点包已全局安装(即带有“-g”属性):

sudo apt install nodejs
sudo apt install npm
sudo npm install -g node-red
sudo npm install -g node-red-dashboard
sudo npm install -g node-red-node-sqlite

然后我确认 npm 可以将所有内容视为全局包:

sudo npm list -g --depth 0

我现在在 shell:

中启动 node-red
node-red

然后转到浏览器并输入:

localhost:1880

node-red 浏览器加载,所有仪表板和 sqlite 节点都可用,我能够读取 sqlite 和 csv 文件。

*** 关于安装的注意事项 node-red sub-packages ***

Node-red sub-packages (node-red-dashboard, node-red-node-sqlite, ...) 可以从 npm 或 node-red 浏览器。

不过我注意到了一些事情:

  • a 从浏览器安装的 sub-package 在键入 npm list -g --depth 0.

    时不会显示
  • sudo npm -g <sub-package> 一起安装的 sub-package 将显示为 npm list -g --depth 0

  • 浏览器中列出的包不会全部显示在命令 npm list <package>.

所以我决定谨慎行事,安装我所有的 node-red sub-packages 和 npm list。首先,我在 node-red 浏览器面板列表中搜索 sub-package,检索 sub-package 名称,然后使用 sudo npm -g <sub-package> 从 shell 安装它。

一致性解决了问题:将 shell 中的所有内容安装为全局包。