首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Loopback +无法初始化连接器"loopback-component-storage“

Loopback +无法初始化连接器"loopback-component-storage“
EN

Stack Overflow用户
提问于 2018-01-08 15:03:09
回答 4查看 2.8K关注 0票数 3

我正在使用回送存储组件"loopback-component-storage"上传文件。但问题是,在添加了这个存储组件和一个名为Container的模型后,我无法将应用程序中的模型迁移到数据库。

下面是我得到的错误

代码语言:javascript
复制
Error: Cannot create data source "storage": Cannot initialize connector "loopback-component-storage": FileSystemProvider: Path does not exist: ./server/files
    at new FileSystemProvider

但是我在通过这个snapshot描述的项目中也有/server/files目录

以下是datasources.json文件

代码语言:javascript
复制
{
  "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 (部分,不完整)

代码语言:javascript
复制
{
  "_meta": {
    "sources": [
      "loopback/common/models",
      "loopback/server/models",
      "../common/models",
      "./models"
    ],
    "mixins": [
      "loopback/common/mixins",
      "loopback/server/mixins",
      "../common/mixins",
      "./mixins"
    ]
  },
  "Container": {
    "dataSource": "storage",
    "public": true
  }
}

以下是Container (上传/下载文件)

代码语言:javascript
复制
{
  "name": "Container",
  "plural": "containers",
  "base": "Model",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {},
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

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

代码语言:javascript
复制
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();
});

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

EN

回答 4

Stack Overflow用户

发布于 2018-01-16 21:38:05

尝试在server.js中添加此内容

代码语言:javascript
复制
var ds = loopback.createDataSource({
    connector: require('loopback-component-storage'),
    provider: 'filesystem',
    root: 'server/files'
});

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

也请查看文档here

票数 1
EN

Stack Overflow用户

发布于 2018-01-08 15:10:11

我认为在参数中存在问题,

代码语言:javascript
复制
"storage": {
      "name": "storage",
      "connector": "loopback-component-storage",
      "provider": "filesystem",
      "root": "./files" 
    }

请参阅:Link

https://strongloop.com/strongblog/working-with-file-storage-and-loopback/

票数 0
EN

Stack Overflow用户

发布于 2018-07-04 21:59:11

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

如果不是呢?你必须创建一个名为"files“的文件夹

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

代码语言:javascript
复制
"root": "/home/ubuntu/Documents/project/server/files"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48145643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档