Node.js 环回&x2B;无法初始化连接器";“环回组件存储”;

Node.js 环回&x2B;无法初始化连接器";“环回组件存储”;,node.js,loopbackjs,angular-loopback,Node.js,Loopbackjs,Angular Loopback,我正在使用环回存储组件“环回组件存储”上载文件。但问题是,在添加了这个存储组件和一个名为Container的模型之后,我无法将应用程序中的模型迁移到数据库 下面是我得到的错误 Error: Cannot create data source "storage": Cannot initialize connector "loopback-component-storage": FileSystemProvider: Path does not exist: ./server/files

我正在使用环回存储组件
“环回组件存储”
上载文件。但问题是,在添加了这个存储组件和一个名为Container的模型之后,我无法将应用程序中的模型迁移到数据库

下面是我得到的错误

Error: Cannot create data source "storage": Cannot initialize connector "loopback-component-storage": FileSystemProvider: Path does not exist: ./server/files
    at new FileSystemProvider
但我在通过本文描述的项目中也有/server/files目录

下面是datasources.json文件

{
  "school": {
    "host": "127.0.0.1",
    "port": 3306,
    "url": "",
    "database": "school_db",
    "password": "root",
    "name": "school",
    "user": "root",
    "connector": "mysql"
  },
  "storage": {
    "name": "storage",
    "connector": "loopback-component-storage",
    "provider": "filesystem",
    "root": "./server/files"
  }
}
以下是
model config.json
(部分,非全部)

以下是容器(用于上载/下载文件)

下面是我更新模型的脚本,比如地址

var server = require('./../../server');
var ds = server.dataSources.school;
var tables = ['Address'];
ds.autoupdate(tables, function(er,result) {
  if (er) throw er;

  ds.discoverModelProperties('Address', function (err, props) {
    console.log(props);
  });

  ds.disconnect();
});
var ds = loopback.createDataSource({
    connector: require('loopback-component-storage'),
    provider: 'filesystem',
    root: 'server/files'
});

var storage = ds.createModel('storage');
app.model(storage);

有人能帮我弄清楚这个问题吗,为什么存储组件抛出了文件目录不存在的异常

我认为参数中的问题

"storage": {
      "name": "storage",
      "connector": "loopback-component-storage",
      "provider": "filesystem",
      "root": "./files" 
    }
请参阅:


尝试将其添加到server.js

var server = require('./../../server');
var ds = server.dataSources.school;
var tables = ['Address'];
ds.autoupdate(tables, function(er,result) {
  if (er) throw er;

  ds.discoverModelProperties('Address', function (err, props) {
    console.log(props);
  });

  ds.disconnect();
});
var ds = loopback.createDataSource({
    connector: require('loopback-component-storage'),
    provider: 'filesystem',
    root: 'server/files'
});

var storage = ds.createModel('storage');
app.model(storage);

也检查文档

是否在服务器文件夹中创建了文件文件夹

如果没有?您必须创建一个名为“文件”的文件夹

如果有的话?那么您的路径声明可能是错误的。尝试像这样使用完整路径

"root": "/home/ubuntu/Documents/project/server/files"

只需在根目录前面添加另一个点

"root": "../server/files"
问题是更新或迁移脚本找不到目录。 对我来说,迁移脚本位于bin目录中,这个目录结构比bin目录高一级


迁移完成后,请返回。

谢谢Iftekhar。我更改了您突出显示的根路径,但没有任何用处。同样的问题。请尝试以root用户身份运行应用程序,例如
sudo npm start
。或者确保你的应用程序有权使用你的存储文件夹。也许这个链接可以帮助你查看我创建的这个repo,它可以在本地使用