标签: strongloop

如何获得Strongloop环回模型?

这是令人抓狂的,我如何获得一个环回模型,以便我可以以编程方式使用它?我有一个名为"通知"的持久模型.我可以使用REST资源管理器与它进行交互.我希望能够在服务器中使用它,即Notification.find(...).我执行app.models()并可以看到它列出.我这样做了:

var Notification = app.models.Notification;
Run Code Online (Sandbox Code Playgroud)

得到一个大胖子"未定义".我这样做了:

var Notification = loopback.Notification;
app.model(Notification);
var Notification = app.models.Notification;
Run Code Online (Sandbox Code Playgroud)

和另一个大胖子"未定义".

请解释我所要做的所有事情,以获得我使用的模型:

slc loopback:model
Run Code Online (Sandbox Code Playgroud)

提前致谢

javascript node.js strongloop loopbackjs

12
推荐指数
1
解决办法
6874
查看次数

修改从loopback-component-storage获取的映像

loopback用来存储图像到server.

我想修改文件的名称得到保存到服务器之前的文件.

另外我想在保存之前将其转换为另一个缩略图形式.

这就是我的表现.

在客户端

Upload.upload(
{
    url: '/api/containers/container_name/upload',
    file: file,
    fileName: "demoImage.jpg",
    //Additional data with file
    params:{
     orderId: 1, 
     customerId: 1
    }
});
Run Code Online (Sandbox Code Playgroud)

在服务器端我收到查询"params"但没有得到"文件名"

我的存储型号名称是 container

Container.beforeRemote('upload', function(ctx,  modelInstance, next) {

    //OUPTUTS: {orderId:1, customerId:1]}
    console.log(ctx.req.query);

    //Now I want to change the File Name of the file.
    //But not getting how to do that

    next();
})
Run Code Online (Sandbox Code Playgroud)

如何更改在服务器上保存的文件的文件名?

node.js express strongloop loopbackjs

12
推荐指数
1
解决办法
2506
查看次数

如何在Strongloop上为自定义远程方法设置自定义架构

我是Strongloop的新手,我找不到有关如何自定义响应类(我构建的对象的模型架构)的信息,我不知道如何在API资源管理器上显示带有自定义数据的对象.

捕获strongloop api探险家

例如,我有一个名为score的自定义远程方法

POST /Challenges/score
Run Code Online (Sandbox Code Playgroud)

我想为参数显示data一个自定义模型模式而不是单个参数,而不是模型模式用于挑战,正文上的数据具有所有参数并向用户显示数据类型:模型模式,这可能吗?

{
  "id": "string",
  "limit": 0,
  "order": "string",
  "userId": "string"
}
Run Code Online (Sandbox Code Playgroud)

另一方面,在Response Class中,我想显示响应对象的模式.像这样的东西:

{
  "id":"string",
  "userId":"string",
  "user": {},
  "totalScore":0,
  "tags": []
}
Run Code Online (Sandbox Code Playgroud)

我看了不同的问题(这个这个),但找不到解决这个问题的东西.

更新

这是远程方法的定义

Challenge.remoteMethod('score', {
    accepts: { arg: 'data', type: 'object', http: { source: 'body' } },
    returns: {arg: 'scores', type: 'array'},
    http: {path: '/score', verb: 'post'}
});
Run Code Online (Sandbox Code Playgroud)

methods model response strongloop loopbackjs

12
推荐指数
3
解决办法
6131
查看次数

错误:"主机标识符中的双冒号"

我正在尝试连接到我在MLab托管的数据库.我正在使用StrongLoop API.我已将托管数据库的配置信息放入我的datasources.json和config.json文件中,但每当我运行该目录时npm start,我都会得到throw new Error ('double colon in host identifier';)api \node_modules\mongodb\lib\url_parser.js:45.

我还确保安装loopback-connecter-mongodb npm包.

这是一个datasources.json片段(当然没有实际的数据库详细信息):

{
  "db": {
    "name": "db",
    "connector": "mongodb",
    "host": "ds047355.mlab.com",
    "database": "dbtest",
    "username": "user",
    "password": "fakepassword",
    "port": 47355
  }
}
Run Code Online (Sandbox Code Playgroud)

这是config.json文件:

{
  "restApiRoot": "/api",
  "host": "ds047355.mlab.com",
  "port": 47355,
  "remoting": {
    "context": {
      "enableHttpContext": false
    },
    "rest": {
      "normalizeHttpPath": false,
      "xml": false
    },
    "json": {
      "strict": false,
      "limit": "100kb"
    },
    "urlencoded": {
      "extended": true,
      "limit": "100kb"
    },
    "cors": false,
    "errorHandler": …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js strongloop

12
推荐指数
1
解决办法
9817
查看次数

如何设置ACL以允许每个人列出REST API中的所有用户

我试图使用REST API列出我的loopback 2.0应用程序中的所有用户,我收到以下错误:

{
  "error": {
    "name": "Error",
    "status": 401,
    "message": "Authorization Required",
    "statusCode": 401,
    "stack": "...."
  }
}
Run Code Online (Sandbox Code Playgroud)

我手动将ACL添加到model-config.json文件中:

"User": {
    "dataSource": "db",
    "acls": [
        {
            "principalType": "ROLE",
            "principalId": "$everyone",
            "permission": "ALLOW",
            "accessType": "*"
        }
    ]
},
Run Code Online (Sandbox Code Playgroud)

由于失败,我创建了一个基于User内置模型的模型:

{
    "name": "Admin",
    "base": "User",
    "properties": {},
    "validations": [],
    "relations": {},
    "acls": [
        {
            "principalType": "ROLE",
            "principalId": "$everyone",
            "permission": "ALLOW",
            "accessType": "*"
        }
    ],
    "methods": []
}
Run Code Online (Sandbox Code Playgroud)

但是在REST API中我仍然遇到同样的问题:

{
  "error": {
    "name": "Error",
    "status": 401,
    "message": "Authorization Required",
    "statusCode": 401, …
Run Code Online (Sandbox Code Playgroud)

javascript strongloop loopbackjs

11
推荐指数
1
解决办法
4378
查看次数

Loopback discoverAndBuildModels不生成模型

我正在尝试让Loopback发现并构建我的第一个表.我在他们的页面底部使用了这个简单的例子:

http://docs.strongloop.com/display/LB/Database+discovery+API#DatabasediscoveryAPI-Exampleofbuildingmodelsviadiscovery

我看到了我正在发现的表的输出,但API Explorer没有显示表或任何新生成的端点.此外,不使用新表对象更新model-config.js文件.以下是在服务器启动时完成的代码的基本部分:

var loopback = require('loopback');
var boot = require('loopback-boot');
var DataSource = require('loopback-datasource-juggler').DataSource;
var mysqlSource = require('./datasources.json');
var dataSource = new DataSource('mssql', mysqlSource.mysqlserver);

var app = module.exports = loopback();

// Set up the /favicon.ico
app.use(loopback.favicon());

// request pre-processing middleware
app.use(loopback.compress());

// -- Add your pre-processing middleware here --

dataSource.discoverAndBuildModels('CATS', {owner: 'mamacat'}, function (err, models) {
    models.Cat.find(function (err, cat) {
        if (err) {
            console.error(err);
        } else {
            console.log(cat);
        }
        dataSource.disconnect();
    });
});

// boot scripts mount components like …
Run Code Online (Sandbox Code Playgroud)

node.js strongloop loopbackjs

11
推荐指数
1
解决办法
6467
查看次数

Loopback neq:null

我正在尝试通过loopback api explorer对postgres数据库进行查询:

{"where": {"archived_at":{ "neq": null }}}
Run Code Online (Sandbox Code Playgroud)

但是,我只获得archived_at为null的结果?

javascript postgresql strongloop loopbackjs

11
推荐指数
1
解决办法
1万
查看次数

在MySQL Loopback Connector上执行原始查询

如何通过带有strongloop的REST API执行原始查询并公开结果?

我已经阅读了有关使用的内容hooks,dataSource.connector.query()但我找不到任何有用的例子.

mysql node.js strongloop loopbackjs

10
推荐指数
1
解决办法
1万
查看次数

如何从单个节点项目发布多个NPM模块?

问题非常简单:有没有办法从单个nodejs项目向npmjs注册表发布两个不同的NPM模块?

但对于那些你想知道为什么有人甚至想要这样做的人呢?......这个问题背后的动机可能不太明显.所以请允许我解释一下:

我使用的东西类似于一个名为loopback的app-server.我的nodejs应用程序整齐地分布到客户端,公共和服务器文件夹中.

  1. 我经常需要在我的common文件夹中重用其他项目中的模型.虽然我可以通过使用.npmignore删除其他东西将该文件夹作为单独的NPM模块发布: /* /common/utils /common/models/*.js !/common/models/*.json

    我无法package.json从已发布的内容中删除实际运行我的应用程序所需的当前杂乱. $ npm pack $ tree -L 2 ~/dev/w2/node_modules/warehouse ~/dev/w2/node_modules/warehouse ??? README.md ??? common ?   ??? models ??? node_modules ?   ??? ... ?   ??? ... ??? package.json 事实上,我过滤掉了除了我的common/models文件夹以外的所有内容,但是因为我不确定如何在打包之前动态调整package.json文件或者作为打包它的一部分...一个npm install将放下真正不属于的依赖关系需要.

  2. 我不喜欢单独使用模型创建一个单独的项目,因为这迫使我将其添加为核心项目的依赖项,并且活动开发分为两个项目,它们曾经只是一个项目.npm link等等是一种很好的方法来解决它,但它增加了开发人员设置的复杂性,当新人加入并确保没有人检查错误的东西.

那么有没有办法从单个nodejs项目向npmjs注册表发布两个不同的NPM模块?或者某种方式使用不同的package.json文件进行单独的发布但所有来自一个项目?


更新:我的目标是什么?

通过将其作为NPM模块发布,从我的核心项目中重用其他项目中的模型.没有放弃继续开发我的核心项目作为一个原子实体没有npm link等的便利,因为当不仅仅是一个人正在努力它时,它会变得混乱.

node.js npm strongloop

10
推荐指数
1
解决办法
3104
查看次数

Strongloop应用程序不加载本地数据源

我想在Strongloop应用程序中使用不同的特定于环境的数据源配置.我在https://docs.strongloop.com/display/public/LB/Environment-specific+configuration上看到配置的优先级是:

  1. 特定环境的配置,基于NODE_ENV的值; 例如,server/config.staging.json.
  2. 本地配置文件 ; 例如,server/config.local.json.
  3. 默认配置文件 ; 例如,server/config.json.

我已经声明了三个数据源配置文件: datasources.json:

{}
Run Code Online (Sandbox Code Playgroud)

datasources.local.json:

{
  "db": {
    "name": "db",
    "connector": "loopback-connector-mongodb",
    "host":"127.0.0.1",
    "port": "27017",
    "database": "woowDev"
  }
}
Run Code Online (Sandbox Code Playgroud)

datasources.staging.js:

module.exports = {
  db: {
    connector: 'mongodb',
    hostname: process.env.OPENSHIFT_MONGODB_DB_HOST,
    port: process.env.OPENSHIFT_MONGODB_DB_PORT,
    user: process.env.OPENSHIFT_MONGODB_DB_USERNAME,
    password: process.env.OPENSHIFT_MONGODB_DB_PASSWORD,
    database: 'woow'
  }
};
Run Code Online (Sandbox Code Playgroud)

现在,除非我在datasources.json中放置datasources.local.json的配置,否则它不起作用.我一直收到错误:AssertionError: User is referencing a dataSource that does not exist: "db"

我还尝试将本地conf添加到staging conf并定义变量NODE_ENV,但它不会加载datasource.staging.js.我通过这样做来定义NODE_ENV:

export NODE_ENV=staging
Run Code Online (Sandbox Code Playgroud)

javascript json strongloop loopbackjs

10
推荐指数
1
解决办法
1601
查看次数