红色节点无法打开SQLite数据库

问题描述

我正在尝试从Node-Red访问sqlite数据库。 Node-Red无法打开数据库。我的操作系统是Ubuntu 18.04.3。

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

enter image description here

enter image description here

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

enter image description here

数据库具有所有用户的读写执行特权。它是我机器上的本地机器,并且是我唯一使用它的机器。

任何想法可能是导致问题的原因吗?

解决方法

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

我也无法打开.csv文件。通过查看其他类似的帖子,即使使用chmod更改文件权限,似乎也无法解决用户权限问题。

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

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

这些不同的安装介质可能会导致特权问题。所以我卸载了所有内容。

然后我从命令行重新安装了所有内容。节点软件包已全局安装(即具有“ -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

enter image description here

我现在在shell中启动node-red:

node-red

然后通过浏览器并输入:

localhost:1880

加载了红色节点的浏览器,所有仪表板和sqlite节点均可用,并且我能够读取sqlite和csv文件。

***有关安装节点红色子软件包的注意事项***

可以从npm或从节点红色浏览器安装节点红色子软件包(node-red-dashboard,node-red-node-sqlite等)。

但是我注意到一些事情:

  • 在键入npm list -g --depth 0时,不会显示从浏览器安装的子软件包。

  • 安装有sudo npm -g <sub-package>的子软件包将显示为npm list -g --depth 0

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

因此,我决定安全使用它,并使用npm list安装我所有的节点红色子软件包。首先,我在节点红色浏览器目录列表中搜索我的子软件包,检索子软件包名称,然后使用sudo npm -g <sub-package>从外壳安装它。

一致性解决了这个问题:将外壳程序中的所有内容安装为全局软件包。