标签: loopbackjs

如何从ModelA.js中调用ModelB.js的方法?

我正在使用loopback 2.0.

我使用yeoman生成器生成了我的模型,并为每个模型添加了一个js文件以扩展其行为.

如何在ModelB中调用ModelA中的方法?

文件夹结构:

/common
  /models
    Car.json
    Car.js
    Engine.json
    Engine.js
...
Run Code Online (Sandbox Code Playgroud)

Car.js:

module.exports = function(Car) {
  Car.drive = function(destination, fn) { ... }
  ...
};
Run Code Online (Sandbox Code Playgroud)

的engine.js:

module.exports = function(Engine) {
  Engine.doSomething = function(something, fn) { 
    // *** Here is where I want to invoke a method from the Car.js
    var loopback = require('loopback');
    var Car = loopback.models.Car;
    Car.drive('49.1234,12.1234', fn);
    // ***
  }
  ...
};
Run Code Online (Sandbox Code Playgroud)

javascript node.js strongloop loopbackjs

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

如何使用WebStorm创建NodeJS + LoopBack应用程序?

我正在使用WebStorm v 9.0.3.我想创建一个Strongloop/Loopback应用程序+ NodeJS应用程序.有没有办法直接通过WebStorm IDE创建它,或者我们应该使用命令行手动创建它.

目前,在WebStorm项目创建期间,我只能看到NodeJS Express App配置.

我正在使用Ubuntu 14.04 LTS系统.

请帮我做.

node.js webstorm loopbackjs

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

Loopback默认模型带有mysql数据库

我正在尝试环回,并注意到在model-config文件中它引用了5个模型,它们dataSource设置为内存数据库db:

  "User": {
    "dataSource": "db"
  },
  "AccessToken": {
    "dataSource": "db",
    "public": false
  },
  "ACL": {
    "dataSource": "db",
    "public": false
  },
  "RoleMapping": {
    "dataSource": "db",
    "public": false
  },
  "Role": {
    "dataSource": "db",
    "public": false
  }
Run Code Online (Sandbox Code Playgroud)

是否需要将用户,acl等保留在内存中?如果没有,我该如何将这些模型移植到mysql?我尝试切换dataSource到我的mysql源,但服务器抱怨,因为表不存在.

express strongloop loopbackjs

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

使用Postgres的StrongLoop查询/存储过程?

根据文档,StrongLoop不支持运行自定义sql语句。 https://docs.strongloop.com/display/public/LB/Executing+native+SQL

任何人都认为您可以通过简单的连接就可以构建企业应用程序,这超出了我,但是我确实找到了这篇文章,说明您可以做到: 在MySQL Loopback Connector上执行原始查询

但这是针对MySql的。当我用Postgres尝试它时,出现错误:“类型'object'的参数'byId'的值无效:0。收到的类型已转换为数字。” 而且它不返回任何数据。这是我的代码:

module.exports = function(account) {

account.byId = function(byId, cb){
    var ds=account.dataSource;
    var sql = "SELECT * FROM account where id > ?";
    ds.connector.execute(sql, [Number(byId)], function(err, accounts)    {
        if (err) console.error(err);
        console.info(accounts);
        cb(err, accounts);
    });
};
account.remoteMethod(
    'byId',
    {
        http: {verb: 'get'},
        description: "Get accounts greater than id",
        accepts: {arg: 'byId', type: 'integer'},
        returns: {arg: 'data', type: ['account'], root: true}
    }
);
};
Run Code Online (Sandbox Code Playgroud)

对于[Number(byId)]部分,我也尝试过[byId]和仅byId。没用。

有任何想法吗?到目前为止,我真的很喜欢StrongLoop,但是看来Postgresql连接器尚未准备好投入生产。如果不行,我将在下一个Sails中制作原型。:-(

postgresql strongloop loopbackjs

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

在Loopback中更改用户默认验证

我深化发展延伸碱基的环回应用User模型来UserCode进行建模,其中每个用户被识别出的email 一个code字段.

这样用户可以使用相同的电子邮件注册两次但使用不同的代码.

node_modules/loopback/common/models/user.js在第691行看到过:

UserModel.validatesUniquenessOf('email', {message: 'Email already exists'});
Run Code Online (Sandbox Code Playgroud)

我想删除此限制/验证,但当然没有更改环回代码.

我该怎么做?也许在启动脚本中我可以遍历所有验证并删除这个?

validation loopbackjs

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

Strongloop loopback如何为新用户分配静态角色

我克隆了一个https://github.com/beeman/loopback-angular-admin ,我使用环回资源管理器创建了几个新角色,但是如何为我创建的用户分配角色

我有一个用户模型,它在环回中从User模型扩展而且模型文件是这样的 -

{
  "name": "user",
  "plural": "users",
  "base": "User",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {},
  "validations": [],
  "relations": {
    "accessTokens": {
      "type": "hasMany",
      "model": "accessToken",
      "foreignKey": "userId"
    },
    "identities": {
      "type": "hasMany",
      "model": "userIdentity",
      "foreignKey": "userId"
    },
    "credentials": {
      "type": "hasMany",
      "model": "userCredential",
      "foreignKey": "userId"
    },
    "roles": {
      "type": "hasMany",
      "model": "Role",
      "foreignKey": "principalId",
      "through": "RoleMapping"
    }
  },
  "acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "admin",
      "permission": "ALLOW"
    },
    {
      "accessType": "READ",
      "principalType": …
Run Code Online (Sandbox Code Playgroud)

authorization roles angularjs strongloop loopbackjs

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

如何从module.exports访问函数

我有以下代码test1.js.

module.exports = function(d){
  d.demo1 = function() {
    return "DEMO 1";
  },

  d.demo2 = function() {
    return "DEMO 2";
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试访问函数demo1 test2.js.在调用函数的代码下面.

var demo = require('./test1');
var result = demo.****;        //code to call function demo1
console.log("calling function", result); //output should be "calling function DEMO 1"
Run Code Online (Sandbox Code Playgroud)

请帮助我如何访问此功能.谢谢.

javascript node.js loopbackjs

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

Loopback3 - 按访问令牌查找当前用户

我在Loopback3文档中读到了不推荐使用getCurrentContext()的内容.我想要做的是获取访问令牌并使用它来查找数据库中的关联用户,这样我就可以获得用户所属的company_id并更改查询以将其包含在where子句中.我正在使用MySQL和从User扩展的自定义UserAccount模型.

我是Loopback的新手,所以很难解决这个问题,因为大多数在线帮助似乎都指向getCurrentContext();.

我已经设置了一些中间件来运行解析阶段:

middleware.json

"parse": {
    "./modifyrequest": {
      "enabled": true   
    }
  }
Run Code Online (Sandbox Code Playgroud)

modifyrequest.js

var loopback = require('loopback');

module.exports = function(app) {
  return function tracker(req, res, next) {
    console.log('Middleware triggered on %s', req.url);
      console.log('-------------------------------------------------------------------');
    console.log(req.accessToken);
}
};
Run Code Online (Sandbox Code Playgroud)

但是req.accessToken总是未定义的.我已经添加到server.js:

app.use(loopback.token());
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?这是错误的方法吗?

根据Kamal在下面的评论......

尝试在"initial:before"下的middleware.json中设置"loopback#token":{}

这会填充req.accessToken

express loopbackjs

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

如何将loopback API响应更改为特定格式

我是新手环回我想将我的loopback远程方法API的每个响应更改为特定格式

例如:如果成功

{
    status:1,
    data:{},
    message:"Success"
}
Run Code Online (Sandbox Code Playgroud)

如果错误

{
    status:0,
    data:{},
    message:"Something went wrong"
}
Run Code Online (Sandbox Code Playgroud)

api node.js express loopbackjs

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

环回-如何获取用户ID并插入相关模型中?(有很多)

我要弄清楚的是如何获取当前经过身份验证的用户的ID,以及如何在数据库中将记录创建为其他模型的外键时使用该ID?

更具体地说,我需要获取当前经过身份验证的用户(模型:CommonUser)的ID,并在创建新事件时将该ID用作FK。

关系:

我已经基于称为CommonUser的用户模型创建了一个模型。普通用户有很多事件。事件属于普通用户。

因此,Event具有一个名为commonUserId的外键。

如何获取用户ID并在插入时使用该ID?

我本以为就建立关系而言,这将是过程的一部分自动进行吗?那不对吗?

同样使事情复杂化的是,我有一个事件查找表(我会担心下一个表,因此不必深究),因为事件通过事件查找还具有AndBelongsToMany。

用户

{
  "name": "CommonUser",
  "base": "User",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {},
  "validations": [],
  "relations": {
    "events": {
      "type": "hasMany",
      "model": "Event",
      "foreignKey": "eventId",
      "through": "EventLookUp"
    },
    "friends": {
      "type": "hasMany",
      "model": "CommonUser",
      "through": "Friend",
      "foreignKey": "friendId"
    }
  },
  "acls": [],
  "methods": {}
}
Run Code Online (Sandbox Code Playgroud)

用户

事件

{
  "name": "Event",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "name": {
      "type": "string"
    },
    "radius": {
      "type": "number",
      "default": …
Run Code Online (Sandbox Code Playgroud)

rest node.js express loopbackjs

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