【问题标题】:ng-lb command in StrongLoop fails when using local-storage-connector使用 local-storage-connector 时,StrongLoop 中的 ng-lb 命令失败
【发布时间】:2016-04-13 16:03:37
【问题描述】:

亲爱的 Strongloop 社区 我正在按照 loopback 提供的示例来评估本地存储数据存储。 它工作正常,我可以使用其余 API 从本地文件系统(用作数据源)创建和检索文件。 我不得不使用“$ npm install loopback-component-storage --save”。

datasource.json中定义的数据源是:

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "localFileSystemStorage": {
    "name": "localFileSystemStorage",
    "connector": "loopback-component-storage",
    "provider": "filesystem",
    "root": "./property_data"
  }
}

./property_data 目录是存储所有数据的地方。 (相对于项目目录),我可以通过 rest 毫无问题地访问它。

接下来我尝试生成 Angular 服务组件,以便可以使用 Angular 应用程序连接到环回服务器。所以在我执行的客户端目录中:

../example-2.0/client$  lb-ng  ../server/server.js js/lb-services.js

它失败了:

/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/providers/filesystem/index.js:25
    throw new Error('FileSystemProvider: Path does not exist: ' + this.root);
          ^
Error: FileSystemProvider: Path does not exist: ./server/storage
    at new FileSystemProvider (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/providers/filesystem/index.js:25:11)
    at Object.module.exports.createClient (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/providers/filesystem/index.js:17:10)
    at Object.createClient (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/factory.js:86:18)
    at new StorageService (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/storage-service.js:29:25)
    at Object.exports.initialize (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-component-storage/lib/storage-connector.js:12:19)
    at DataSource.setup (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-datasource-juggler/lib/datasource.js:332:17)
    at new DataSource (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback-datasource-juggler/lib/datasource.js:109:8)
    at Registry.createDataSource (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback/lib/registry.js:349:12)
    at dataSourcesFromConfig (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback/lib/application.js:415:19)
    at EventEmitter.app.dataSource (/home/eval/projects/loopback-component-storage/example-2.0/node_modules/loopback/lib/application.js:222:12)

我错过了什么吗? 我真的可以在这里使用一些帮助。

谢谢

【问题讨论】:

    标签: javascript angularjs node.js loopbackjs


    【解决方案1】:

    在datasource.json 文件中,您提供了./property_data 相对于/server 文件夹的相对路径。

    因此,您只需调用该文件夹中的任何方法。

    现在,当您通过服务器运行它时,您是从 /server 文件夹运行它,这就是它运行没有问题的原因,但对于角度 Sdk 生成,您是从 client/ 文件夹运行它。因此它会产生Path does not exist 错误。

    因此正确的语法应该是:

     ../example-2.0/server$  lb-ng  server.js ../client/js/lb-services.js
    

    【讨论】:

    • 谢谢罗宾,这几乎是正确的。 ./property_data 位于主项目目录下,因此我在您的回答之后使用的正确语法是: lb-ng server/server.js client/js/lb-services.js
    猜你喜欢
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2022-07-06
    • 2019-05-09
    相关资源
    最近更新 更多