Tag: loopbackjs

如何为具有参数和关系的方法编写远程钩子

我通过远程钩子文档 ,我可以成功创build远程钩子的方法没有额外的参数,如login ,这是: customer.afterRemote('login', function(ctx, modelInstance, next) { if (ctx.result) { … next(); } else{ next(); } }); 现在,如何写一个方法的远程钩子说: GET /customers/{id} POST /customers/{id} 或者在发布相关对象时 POST /customers/{id}/contacts GET /customers/{id}/contacts 我知道使用POST /customers/{id}/contacts : customer.beforeRemote('**', function(ctx, user, next) { console.log(ctx.methodString, 'was invoked remotely'); // customers.prototype.save was invoked remotely next(); }); 会返回所谓的方法的名称,如: customer.prototype .__ create__contacts被远程调用 但是我仍然无法把它具体挂钩,而下面的尝试是徒劳的,钩子没有达到: customer.beforeRemote('customer.prototype.__create__contacts', function(ctx, user, […]

从中间件访问环回configuration数据

假设我们在Loopback中间件中,比如 app.use(function(req,res,next){ // I am not sure what key to use here in the getter… const config = app.get('?'); }); 我想访问Loopback正在使用的整体configuration。 我试过了: const config = app.get('config'); const config = app.get('env'); const config = app.get('datasources'); 没有任何东西给我相当我想要的。 有趣的是,这给了我: console.log(app.get('restApiRoot')); => '/api' 所以这是一个线索到底是怎么回事,但我想获得上述数据的父对象。 我们怎样才能访问Loopback已经加载的configuration。 当然configuration因环境variables等而异 我想logging什么datasources.x.js文件被加载,什么config.x.js文件被加载,以及我可以捕获的任何其他服务器configuration信息。 解决如何做到这一点有很多麻烦。 这似乎是我有同样的问题: https : //github.com/strongloop/loopback/issues/1526 但他们指出我是谷歌集团的空白,我在那里search,找不到这个问题的答案。

unit testing环回模型

使用Loopback,我们创build了一些自定义的远程方法,并且我们要unit testing这个逻辑。 我期望完成的是加载一个模型,而不是所有的模型,并且unit testing那个模型的自定义远程方法。 我们可以将这个模型连接到内存数据库(而不是我们的例子中的Postgres),但是不知何故,我需要告诉Loopback这个独立的模型,而不使用Loopback引导。 (如果我们使用标准的Loopback引导(app.boot()),它会加载我们所有的模型和整个shebang,我认为我们应该避免孤立的目的)。 我们在一个正在进行的unit testing中有这个设置: const supertest = require('supertest'); //load the schema for the model const ContactSchema = require(path.resolve(projectRoot + '/server/models/contact.json')); const opts = { strict: true }; const dataSource = loopback.createDataSource({ connector: loopback.Memory }); const Contact = dataSource.createModel('Contact', ContactSchema, opts); //load remote methods for this model require(path.resolve(projectRoot + '/server/models/contact.js'))(Contact); const app […]

Loopback没有发现Oracle的关系

Loobback Docs:从关系型数据库中发现模型 , Stackoverflow答案:Loopback不发现模型和Loopback数据源juggler API:数据源我创build了一个发现js脚本从Oracle数据库中获取模型。 问题是,它从来没有设法从表中读取关系。 我使用的方法 discoverAndBuildModels – 结果对象具有表的属性和称为关系的数组,但该数组是空的 discoverSchema – 我设法得到实际的模型JSON文件,并将其写入适当的位置。 由于api中描述的方法不读取关系,我并不感到惊讶,在这里找不到任何东西 discoverSchemas – 包含选项来读取关系(称为关系,但也试图与关联)这给了我一个类似的结果比discoverSchema但“关系”标签只有一个空的json对象分配给它。 我尝试了各种关系和关联设置的所有选项,但没有一个给我任何东西,只是一个空的对象作为“关系”标签。 我在设置中丢失了什么?

环回查找然后更新属性或通过ID删除

一直试图在Loopback中为persistedModel的一些静态方法find样本用法。 https://apidocs.strongloop.com/loopback/#persistedmodel-prototype-updateattribute 它只是说: persistedModel.updateAttributes(data, callback) 但是,我如何select我要更新的logging? 这不适合我。 var order = Order.setId('whateverrecordId'); order.updateAttributes({name:'new name'},callback) 爱回环..但他们的文件,糟透了.. 🙁

浏览JSON响应中的关系

我已经编辑我的JSON响应使用这个远程挂钩后。 module.exports = function (server) { // Install a `/` route that returns server status var router = server.loopback.Router(); router.get('/', server.loopback.status()); server.use(router); var remotes = server.remotes(); var modelEnty = server; //Intercept all responses comming from backend remotes.after('**', function (ctx, next) { var output = ctx.result; //if request is comming from Ex /Cutomers,It gives array of […]

环回如何设置嵌套关系

我最近在玩Strongloop Loopback (即: http : //loopback.io/ ),这是一个很棒的工具。 我经历了他们的示例,它的工作原理非常好。 但这是基本的例子; 基于下面的简单数据模型(可以开始): 原始样本 现在,如果你考虑一个稍微复杂一点的数据模型…让我们来说一个关于漫画( http://developer.marvel.com/docs )的数据模型,在这个模型中你有几个由几部漫画组成的系列,漫画中你有很多字符。 更新:在系列和漫画之间添加了一个子系列模型 如果我在回送关系中翻译这个: Serie hasMany Sub-series Sub-series belongsTo a Serie Sub-serie hasMany Comics Comic belongsTo a Sub-serie Comic hasMany Characters Character belongsTo a Comic 这是我的问题, 如何获得给定系列的所有字符? 我应该如何描述这种关系 。

如何以编程方式从回送应用程序分离模型?

我使用loopback而没有使用strongloop框架,这意味着我无法访问任何cli工具。 我能够成功地创build和启动一个回送服务器,并以这种方式定义/加载一些模型: var loopback = require('loopback'); var app = loopback(); var dataSource = app.dataSource ( 'db', { adapter : 'memory' }); ); var UserModel = app.loopback.findModel('User'); UserModel.attachTo(dataSource); app.model(UserModel); /* … other models loading / definitions */ // Expose API app.use('/api', app.loopback.rest()); 我想实现的是能够在运行时从回送应用程序中分离出一个模型,所以它不再可用于其余的API或者回送对象(不需要重新启动节点脚本)。 我知道可以从cli中删除之前创build的模型定义: 在loopback.io中销毁一个模型 ,但是在我的情况下这是无效的,因为它所做的是删除在强循环引导时加载的json对象,在这里不适用。 我非常感谢这方面的帮助,我没有在strongloop API文档中find任何帮助。

没有原始的function链来包装

这个错误是什么意思? 我用apic loopback emptyapp运行了基本的回送应用程序 然后我添加了babel来使用es6,并且server listening at http://0.0.0.0:3000之前,我收到了这个错误 任何关于错误的build议都会有帮助

使用本地存储连接器时,StrongLoop中的ng-lb命令失败

亲爱的Strongloop社区我正在遵循loopback提供的用于评估本地存储数据存储的示例。 它工作正常,我可以使用其余的API来创build和检索本地文件系统(用作数据源)的文件。 我不得不使用“$ 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: […]