Articles of strongloop

回环关系数据库hasManyThrough数据透视表

我似乎被卡在一个经典的ORM问题上,并不知道如何处理它,所以在这一点上,任何帮助是值得欢迎的。 有没有办法让一个hasManyThrough查询数据透视表? 更好的是,应用一些filter或sorting。 一个典型的例子 表产品 id,title 表类别 id,title 表产品类别 productsId, categoriesId, orderBy, main 因此,在上述情况下,假设您想获得所有类别的产品X(main = true),或者您想按orderBy对产品类别进行sorting。 现在发生的事情是产品获取产品数据的第一个SELECT在products_categories上的第二个SELECT获取categoriesId和categoriesId的最终SELECT以获取实际类别。 理想情况下,filter和sorting应该适用于第二个SELECT SELECT `id`,`productsId`,`categoriesId`,`orderBy`,`main` FROM `products_categories` WHERE `productsId` IN (180) WHERE main = 1 ORDER BY `orderBy` DESC 另一个典型的例子是想要根据用户希望他们的订单来订购产品图像 所以你会有一个products_images表 id,image,productsID,orderBy 你会想 SELECT from products_images WHERE productsId In (180) ORDER BY orderBy ASC 这甚至可能吗? 编辑:这是一个中间表所需的关系,以根据我的模式得到我所需要的。 Products.hasMany(Images, { as: "Images", […]

如何使用ES6模块导入导入path

有没有什么好的方法来使用dynamicpath优雅地加载一个模块(IDE可以提示或进入文件)或从根目录开始导入模块? import * as Q from 'q'; import * as loopback from 'loopback'; import datasources from '../../../datasources.json'; import app from '../../../server'; import {ApiError, ValidationError, DatabaseError} from'../../../utils/error-handlers';

Strongloop Embeds许多辅助方法没有find

有些问题我在文档中找不到答案。 我试图得到这样的结构: Node: id: '1sdf12asd123', name: 'node1', history: [ ts: 234234234234, data: { 'foo': 'bar' } ], … 所以每个节点都有很多的历史项目。 而且我希望能够push新的数据,而不会覆盖任何东西。 现在,我不想将每个节点下的所有东西都存储起来,而是放在一个单独的文档中,所以我认为embedsMany会适合这个: { "name": "Node", "plural": "Nodes", "base": "PersistedModel", "idInjection": true, "options": { "validateUpsert": true }, "properties": { "name": { "type": "string" } }, "validations": [], "relations": { "history": { "type": "embedsMany", "model": "History", "foreignKey": "HistoryId" […]

loopbackjs:将模型附加到不同的数据源

我定义了几个使用数据源“db”(mysql)的模型用于我的环境。 有没有办法有几个数据源附加到这些模型,所以我将能够执行REST操作到不同的数据库? 即:GET / api / Things?ds =“db” GET / api / Things?ds =“anotherdb” GET / api / Things(将使用默认的ds)

服务器端反应:Babel不会在服务器上dynamic地转换JSX。 为什么?

我使用Node.js的LoopbackJS框架(与Express相同,因为它基于Express)。 而且我无法设置React服务器端渲染。 我遵循这篇文章 ,并在这里回答了Stackoverflow和其他文章,不起作用。 巴贝尔文件是悲惨的,没有例子,“尝试猜测”的风格。 以下是他们提供的关于如何在即时渲染React的唯一信息: $ npm install -g babel-core require("babel-core/register"); 所有具有扩展名.es6,.es,.jsx和.js的节点所需的后续文件将由Babel转换。 polyfill中指定的polyfill也是自动需要的。 但它不起作用。 顺便说一下,其他文章build议使用require("babel/register") 。 有什么不同? 我尝试了两个。 结果是一样的 – SyntaxError: Unexpected token 。 这是我的代码: 这是client/js/components.js : var React = require('react'); var ReactDOM = require('react'); var Form = React.createClass({ render: function() { return ( <form action="" method="post" id="login-form"> <div><input type="text" id="login" placeholder="Login" /></div> <div><input […]

Loopback +连接多个数据库

我正在使用loopback框架和nodejs。 是否可以一次连接多个数据库? 比如我有两个不同的数据库。 1. Mysql Database – A 2. Postgresql – B 有些页面从A数据库获取数据,有些页面需要从B数据库获取数据。 有可能这样做吗? 更多细节: 假设我们有两个模块。一个模块与MySQL交互,另一个模块与postgreSQL交互。

使用内存作为数据源进行环回testing

我正在尝试使用内存连接器作为数据源进行集成testing时。 但它似乎总是连接到mongodb数据源。 我做的一个主要的黑客攻击是将每个模型的数据源更改为内存。 但是一定有更好的方法来做到这一点。 我从一个吞咽任务运行我的testing。 我的roflmao模型 – 内存黑客: var models = require('../server/model-config.json'); for (var key in models) { var model = loopback.getModel(key); loopback.configureModel(model, {dataSource: memory}); } } 有没有办法改变应用程序的数据源? 或者我必须改变每个模型的数据源..? 一个这样做的方法是在testing期间改变环境variables,但到目前为止,没有运气..我正在做这个与吞吐任务预处理。 希望通过改变环境variables,它会使用datasources.integrationtesting.js,其中我有内存作为一个数据源。 我的一口气任务: return gulp.src('integration-tests/*.js') .pipe($.preprocess({context: {NODE_ENV: 'integrationtesting'}})) .pipe($.mocha()) 我在用着: 环回testingfunction 一饮而尽,摩卡 欣赏任何评论..)

使用Loopback实现更改密码

我试图用Loopback的内置方法实现更改密码function,它工作正常,但它不会更新密码与hash相反,它只是保存在数据库中的纯文本。 我在这个项目中使用loopback-component-passport npm包。 我search了很多网站,但我无法find正确的方法来实现此function。 有没有人有想法如何做到这一点? //Change user's pasword app.post('/change-password', function(req, res, next) { var User = app.models.user; if (!req.accessToken) return res.sendStatus(401); //verify passwords match if (!req.body.password || !req.body.confirmation || req.body.password !== req.body.confirmation) { return res.sendStatus(400, new Error('Passwords do not match')); } User.findById(req.accessToken.userId, function(err, user) { if (err) return res.sendStatus(404); user.hasPassword(req.body.oldPassword, function(err, isMatch) { if (!isMatch) […]

在MySQL Loopback Connector上执行原始查询

如何使用strongloop执行原始查询并通过REST API公开结果? 我读过一些关于使用hooks和dataSource.connector.query()但我找不到任何工作的例子。

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

我试图连接到我在MLab托pipe的数据库。 我正在使用StrongLoop API。 我已经把我的托pipe数据库的configuration信息放到我的datasources.json和config.json文件中,但是每当我用npm start运行这个目录npm start ,我都会得到throw new Error ('double colon in host identifier';) 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 } } 这里是config.json文件: { "restApiRoot": "/api", "host": "ds047355.mlab.com", "port": 47355, "remoting": { "context": { "enableHttpContext": […]