标签: strongloop

Strongnode vs Nodejs - strongnode的优势是什么?

该strongnode增加了工具包是一个明显的优势,在普通的NodeJS,例如其命令行工具,你可以脚手架,监测提供手机后台为你的应用程序的NodeJS.

但在他们的网站上他们说:

[...] StrongNode优于Node.js的优点是,在StrongLoop,我们策划,测试和认证一系列模块和工具,涵盖了Node.js应用程序开发需求的最常见用例.

我想知道,它是什么意思,拥有策划,测试和认证的节点模块有什么好处?

javascript node.js npm strongloop

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

如何创建getter和setter覆盖?

我想用mongoose加密类似于这个例子的字段:https://gist.github.com/kljensen/7505729

上面链接中的代码将字段映射到自定义decrypt()函数getencrypt()函数set.

这会导致纯文本值在保存时被加密,并在检索时被解密.

如何在Loopback中覆盖模型属性的getter和setter?

strongloop loopbackjs

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

如何在Strongloop Loopback中更改http状态代码

我正在尝试修改create的http状态代码.

POST /api/users
{
    "lastname": "wqe",
    "firstname": "qwe",
}
Run Code Online (Sandbox Code Playgroud)

返回200而不是201

我可以为错误做些类似的事情:

var err = new Error();
err.statusCode = 406;
return callback(err, info);
Run Code Online (Sandbox Code Playgroud)

但是我找不到如何更改create的状态代码.

我找到了创建方法:

MySQL.prototype.create = function (model, data, callback) {
  var fields = this.toFields(model, data);
  var sql = 'INSERT INTO ' + this.tableEscaped(model);
  if (fields) {
    sql += ' SET ' + fields;
  } else {
    sql += ' VALUES ()';
  }
  this.query(sql, function (err, info) {
    callback(err, info && info.insertId);
  });
};
Run Code Online (Sandbox Code Playgroud)

rest http http-status-codes strongloop loopbackjs

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

Loopback 2.4:如何通过REST API查询相关模型的某些字段

我有关系数据库的用户模型.

每个用户都可以拥有"chiefId"为FK的"用户".

"relations": {
    "users": {
      "type": "hasMany",
      "model": "User",
      "foreignKey": "chiefId"
    },
}
Run Code Online (Sandbox Code Playgroud)

我可以查询每个主要用户的相关用户,如下所示:

GET /users?filter={"include":"users"}
Run Code Online (Sandbox Code Playgroud)

但它返回完整的用户对象.

  • 我该如何仅查询相关用户的"名称"属性?
  • 是否可以在一个请求中计算相关实例到服务器?

jugglingdb strongloop loopbackjs

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

如何在node/loopback中同步调用model.find方法?

我正在使用自定义模型并尝试使用find方法在循环中过滤它.例如,如下所示

for i = 0 to n
{
var u = User.find( where { name: 'john'});
}
Run Code Online (Sandbox Code Playgroud)

它不起作用.

另外,如果我使用以下内容

for i = 0 to n
{
User.find( where { name: 'john'}, function(u) {... } );

// How do I call the code for further processing? 
}
Run Code Online (Sandbox Code Playgroud)

有没有办法同步调用find方法?请帮忙.

谢谢

javascript rest node.js strongloop loopbackjs

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

StrongLoop Explorer持久模型错误

我正在尝试设置一个示例强循环应用程序,当我尝试使用/ explorer尝试使用post api时,我收到以下错误.

"Cannot call AccessToken.findById(). The findById method has not been setup.. The PersistedModel has not been correctly attached to a DataSource."
Run Code Online (Sandbox Code Playgroud)

我跑过并安装了slc loopback:acl,其中包含以下设置:

"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "admin",
      "permission": "ALLOW"
    }
  ],
Run Code Online (Sandbox Code Playgroud)

但是,这些设置似乎不适用于我的模型.

strongloop

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

LoopBack/Angular/Cordova在Android上超时

我们有一个Web应用程序,它使用Strongloop的LoopBack作为API和后端,以及前端的Angular,Cordova用于打包移动.来自Cordova的Web应用程序和iOS目标运行良好,但是当我们尝试为Android设备构建时,应用程序服务器无法从设备访问.更具体地说,在加载客户端应用程序并尝试登录后,设备向我的API发出POST但从未收到响应(据我所知,请求从未真正命中过服务器).

这是我到目前为止所尝试的:

  • 确保在config.xml中access设置为origin="*"
  • 确保Content-Security-Policy在我的(单页)应用程序的index.html中设置了元标记,允许远程网络
  • 确保INTERNET在Android Manifest中正确设置了权限
  • 确保可以从浏览器中的设备访问应用服务器
  • 确保生成的lb-services.jsAngular服务具有正确的API地址
  • 尝试生成一个Ionic Framework应用程序并将我的应用程序代码放入其中以防万一它生成我需要的东西

由于我能够在没有任何问题的情况下使用Cordova在iOS上运行我的应用程序,我认为我的Android配置必须有特定的东西.我确实遇到了一个单独的问题,即安装的插件与最新的Cordova不兼容,但删除该插件似乎已经解决了这个问题.为Android构建有什么不同可以防止这种情况发生?

编辑:

我已经转而使用Phonegap Build,希望这将是一个更简单的工作流程,但我仍然看到相同的问题..这是我正在做的白名单/ CORS配置:

index.html中的元标记: <meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'self' 'unsafe-inline'; script-src * 'self' 'unsafe-inline' 'unsafe-eval'">

config.xml(Phonegap Build,可识别信息已删除):

<?xml version="1.0" encoding="UTF-8" ?> <widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="..." version="1.0.0"> <name ... /> <description ... /> <author ... /> <icon src="icon.png" /> <gap:splash src="splash.png" /> <preference name='phonegap-version' value='cli-5.1.1' /> <gap:plugin name="com.indigoway.cordova.whitelist.whitelistplugin" version="1.1.1" /> </widget>

javascript angularjs cordova phonegap-build strongloop

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

为什么会出现错误Code = 3840 Parsing JSON?

一般来说,我是Swift和iOS开发的新手。我正在测试和学习如何使用远程服务器api。尝试进行身份验证时,我从Strongloop(Loopback)api中获取了JSON,而我尝试使用的解析过程出错:

错误域= NSCocoaErrorDomain代码= 3840“无法完成操作。(可可错误3840。)”(无值。)UserInfo = 0x7fd623e38870 {NSDebugDescription =无值。}

这是字符串中的返回值,很明显,我从Loopback,身份验证令牌,ttl,date和userId获得了正确的JSON响应:

{“ id”:“ BHzKnjrbUPn9KSC1GegQTNHJFNwfuifNXPfZuKkYxC5IwRDEHuerurvSdBMzzrVi”,“ ttl”:1209600,“ created”:“” 2015-07-03T13:04:39.791Z“,” userId“:2}

我认为实际问题不是在parseJSON方法中发生,而是在performLoginRequestWithURL方法中发生。它返回一个空字符串。与异步请求有关。我注意到json字符串变量直到从方法返回后才被设置,因此返回空白。如果我放置了两个println(json)方法,一个在异步请求中,另一个在它之后,然后一个在先打印。从某种意义上讲这很有意义,但我不知道如何解决。我需要从帖子中返回json,但我不知道如何捕获。告诉我我需要使用同步请求,但是在从POST请求获取json的情况下,我不知道该怎么做。

这是我的代码:

//Login button pressed
@IBAction func login() {
    //Gets url string
    let url = getLogin()
    //Posts url with UITextField data.
    if let jsonString = performLoginRequestWithURL(url) {
        //Error occurs in the parseJSON method
        if let dictionary = parseJSON(jsonString) {
            /*
            if let at = dictionary["id"] as? String {
                accesstoken = at
            }
            if let id = dictionary["userId"] as? Int {
                println(id)
            }
            */
        } …
Run Code Online (Sandbox Code Playgroud)

api json ios strongloop swift

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

Loopback下载文件

我正在关注该文件以下载该文件.

https://docs.strongloop.com/display/public/LB/Storage+component

在该文档中,如果下载文件意味着需要遵循url模式.

GET/containers/{container}/files/{file}

例:

我有容器1(容器名称)和文件名lb.png.

所以我像这样制作了网址

http://localhost:3000/api/containers/container1/files/lb.png?access_token=8Hfay0LRU2g22BjCqf3q8HsQCdsVBgBp9MHeekr3LfNLlILVUzUHUsUKOZmjTRD9
Run Code Online (Sandbox Code Playgroud)

我收到了文件名的响应,我希望一旦我在浏览器中使用url意味着该文件应该下载到url中.

得到的回应:

{
  "container": "container1",
  "name": "lb.png",
  "size": 38780,
  "atime": "2016-03-18T05:13:41.000Z",
  "mtime": "2016-03-18T05:09:06.000Z",
  "ctime": "2016-03-18T05:09:06.000Z"
}
Run Code Online (Sandbox Code Playgroud)

预期产出:

我需要下载文件(lb.png).

download node.js strongloop loopbackjs

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

如何在环回中限制include-filter的关系记录?

我想通过LoopBack -application中的REST-Api查询特定模型的记录.另外,我想通过include-filter包含相关对象.这很好,但返回所有相关的对象.是否可以限制它们,还可以通过相关对象的字段对它们进行排序?

楷模:

-   DEPARTMENT
    Fields:
        - id
        - name 
        - ...
    Relations_ -> hasMany: Messages
    Relations_ -> hasMany: Members

- MESSAGE
    Fields:
       - id
       - senderId
       - body
       - ...

- MEMBER
    Fields:
       - id
       - email
       - ...
Run Code Online (Sandbox Code Playgroud)

查询:

我想要实现的是查询所有部门及其所有成员,但只查询特定字段(created-timestamp)排序的最后一条消息.

第一种方法可能是GET-Request的普通查询字符串变体:

http://loopback-server:3000/api/departments?filter[include]=members&filter[include]=messages
Run Code Online (Sandbox Code Playgroud)

这将返回包含所有消息和所有成员的所有部门.但是,我想将返回消息的数量限制为最后一个(或最后5个或其他任何内容,按MESSAGE模型的特定字段排序).

我还尝试了jsonfied查询语法:

http://loopback-server:3000/api/departments?filter={"include":{"relation": "messages","limit":1}}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这里不使用"限制"参数来表示消息的关系.

以下变量将仅返回第一个部门,表示limit-param应用于departments-model,而不是关系模型.

http://loopback-server:3000/api/departments?filter={"include":{"relation": "messages"},"limit":1}
Run Code Online (Sandbox Code Playgroud)

然后我发现了范围参数并尝试了这个:

http://loopback-server:3000/api/departments?filter={"include":{"relation": "messages","scope":{"limit":1, "skip":0}}}
Run Code Online (Sandbox Code Playgroud)

这给出了一个非常奇怪的结果.这省略了与部门相关的所有消息,而不是一条返回一条消息的特定记录(它有超过10条),这是我所期望的.删除scope-parameter表明部门确实每个都有许多消息.

(我知道带有所有这些特殊字符的URL的参数,如{",:"}需要进行url编码.为了更好的可读性,我把它留在这里干净)

我的问题:

如何通过单个请求实现该查询?

loopback strongloop loopbackjs

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