标签: loopbackjs

LoopBack远程方法和对模型数据的访问

我已经工作了几个小时而且我完全迷失了,因为环回文档没有帮助.

我正在尝试将应用程序逻辑编写到模型中.该文档就在这里.不幸的是,除了将外部值传递给远程方法并再次返回之外,该示例并未演示任何有用的内容.我想了解如何在此上下文中运行查询并访问模型数据,但我已搜索了几个小时,甚至无法找到有关这些简单任务的文档.也许我只是在寻找错误的地方.有人可以帮忙吗?

node.js loopbackjs

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

通过带有环回后端的角应用程序登录facebook

我正在使用strongloop loopback后端进行角度应用.

我还使用loopback-passport模块通过facebook整合第三方登录.

在loopback-example-passport中一切都很好,在重定向到我的应用程序之前,我的应用程序中的一切都很好.已创建用户和访问令牌.

代码:

app.get('/auth/login', ensureLoggedIn('/#login'), function(req, res, next) {
    console.log('LOOGED IN!!');
console.log(req.user);

  res.redirect('/#auth/login');
});
Run Code Online (Sandbox Code Playgroud)

工作良好.但我无法理解.如何为我的角度应用程序提供经过身份验证的状态

我试图让控制器路由'/#auth/login':

.controller('AuthCalbackCtrl', function($scope, $cookies, $location, AppAuth, $http, User, LoopBackAuth) {
//analogue of User.login responce interceptor
   LoopBackAuth.currentUserId = $cookies['userId'] || null;
   LoopBackAuth.accessTokenId = $cookies['access-token'] || '';
   LoopBackAuth.rememberMe = false;
   LoopBackAuth.save();
   //asking for currentUser
   User.getCurrent(function(user) {
     console.log('ser.getCurrent ', user);
   });
   $location.path('/');
  })
Run Code Online (Sandbox Code Playgroud)

此代码发出请求GET/api/users/2但收到401错误.

如果我调整文件/loopback/lob/models/user.js设置权限:

  principalType: ACL.ROLE,
  // principalId: Role.OWNER,
  principalId: Role.EVERYONE,
  permission: ACL.ALLOW,
  property: "findById"
Run Code Online (Sandbox Code Playgroud)

然后请求GET/api/users/2接收200并且一切正常.

我有点困惑.虽然我知道access-token和userId,但我无法理解如何使我的角度应用程序进行身份验证以进行环回

有任何想法怎么做?

angularjs loopbackjs passport.js

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

如何设置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
查看次数

从Strongloop环回下载文件

我在loopback API中有一个模型,我想将其作为文件下载而不是将其显示为文本.我有我有一些旧的PHP代码bastardized适应尝试和下载响应的文件.

这是我的代码:

Issue.afterRemote('getCSV', function(ctx, affectedModelInstance, next) {
var result = ctx.result;
console.log(result);
var currentdate = new Date(); 
var datetime = currentdate.getDate() + " " +
            + (currentdate.getMonth()+1) + " " +
            + currentdate.getFullYear() + " " +
            + currentdate.getHours() + ":"  
            + currentdate.getMinutes() + ":" 
            + currentdate.getSeconds(); + " ";
ctx.res.set('Expires', 'Tue, 03 Jul 2001 06:00:00 GMT');
ctx.res.set('Cache-Control', 'max-age=0, no-cache, must-revalidate, proxy-revalidate');
ctx.res.set('Last-Modified', datetime +'GMT');
// force download  
ctx.res.set('Content-Type','application/force-download');
ctx.res.set('Content-Type','application/octet-stream');
ctx.res.set('Content-Type','application/download');
// disposition / encoding on response …
Run Code Online (Sandbox Code Playgroud)

node.js loopbackjs

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

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万
查看次数

Rest API的swagger和loopback之间的区别

Swagger有助于创造Restful Api,我明白了.你在哪里使用LoopBack,这是另一个创建Rest api的工具.LoopBack支持swagger 2.0.我在这里很困惑,可以互换使用.

node.js swagger loopbackjs

11
推荐指数
2
解决办法
3962
查看次数

使用超级,摩卡和模型进行环回测试

关于弃用环回测试谷歌小组发布的帖子中有一个问题,即提供一个如何在没有环回测试的情况下实现测试的正确示例.该线程谈论使用supertest而不是.

下面是我尝试将Mocha,supertest和模型(来自app.js)结合起来.当我自己运行文件时,结果非常好.但是如果我有另一个测试文件(比如test-teacher.js)那么第一个测试文件(称为test-student.js)就会以奇怪的方式开始失败,我无法描述.

我错过了什么或者可以使用不能使用的模型,就像我在下面使用它们一样?

describe('/Student', function () {

    var server = require('../server/server')
    var loopback = require('loopback')
    var supertest = require('supertest')
    var request = require('supertest')(server)

    var dataSource = server.dataSource('db', {adapter: 'memory'})

    var Student = dataSource.define('Student', {
        'id': Number,
        'points': Number
    });

    beforeEach(function () {
        Student.updateOrCreate({id: 1, points: 5000});
    })


    it('Post a new student', function (done) {
        request.post('/api/Students').send({points: 5000}).expect(200, done)

    })


})
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js supertest loopbackjs

11
推荐指数
2
解决办法
7136
查看次数

在MySQL Loopback Connector上执行原始查询

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

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

mysql node.js strongloop loopbackjs

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

Sequelize orm vs Loopback orm

我正在创建由PostgreSQL支持的rest api.我喜欢Strongloop Loopback框架,它简化了api开发.但它的内置orm与续集相比如何?哪些高级功能已经作为专用的sql orm继承,在环回中缺少?也许最好继续使用sequelize,并使用一些其他的api助手而不是monolitic loopback框架?

sequelize.js strongloop loopbackjs

10
推荐指数
2
解决办法
7636
查看次数