在MySQL环回连接器上执行原始查询
如何使用strongloop通过RESTAPI执行原始查询并公开结果 我读过一些关于使用在MySQL环回连接器上执行原始查询,mysql,node.js,loopbackjs,strongloop,Mysql,Node.js,Loopbackjs,Strongloop,如何使用strongloop通过RESTAPI执行原始查询并公开结果 我读过一些关于使用hooks和dataSource.connector.query()的文章,但是我找不到任何有效的例子 在/common/models/model.js中公开远程方法 在远程方法中执行sql查询(通过dataSource.connector.query(sql,cb); 下面是一个基本示例。如果您有一个产品模型(/common/models/Product.json),请通过添加/common/models/
hooks
和dataSource.connector.query()
的文章,但是我找不到任何有效的例子
/common/models/model.js中公开远程方法
dataSource.connector.query(sql,cb);
下面是一个基本示例。如果您有一个产品模型(/common/models/Product.json),请通过添加/common/models/Product.js文件来扩展该模型:
module.exports = function(Product) {
Product.byCategory = function (category, cb) {
var ds = Product.dataSource;
var sql = "SELECT * FROM products WHERE category=?";
ds.connector.query(sql, category, function (err, products) {
if (err) console.error(err);
cb(err, products);
});
};
Product.remoteMethod(
'byCategory',
{
http: { verb: 'get' },
description: 'Get list of products by category',
accepts: { arg: 'category', type: 'string' },
returns: { arg: 'data', type: ['Product'], root: true }
}
);
};
这将创建以下端点示例:GET/Products/byCategory?group=computers
几乎没有输入错误:
产品。按组
应为产品。按类别
和“从产品中选择*
应为”选择*FROM products
您能提供一个如何在DB中存储模型的示例吗?我的意思是,如何创建一个新的产品,然后执行insertand..另一个问题,SQL注入如何?此功能尚未经过全面测试,也未得到官方支持:API可能在未来的版本中发生更改。通常,它是tter无法通过连接的模型执行数据库操作。直接执行SQL可能会导致意外的结果、损坏的数据和其他问题。
为什么文档会这样说?我用完全相同的代码尝试了一个示例,但发现上面的示例有很多问题,对于我的情况,postgresql不接受“?”,它将接受“$1,$2”而不是“?”和参数必须是数组对象,例如var params=[];params.push(st1);params.push(st2);如果你只想在一个新模型上使用一个远程方法怎么办?在这种情况下,我想根据你的建议,你必须禁用所有默认的远程方法,如find、updateAll等,对吗?是的,我相信这是ATM的唯一方法。我认为我们需要简化LoopBack 3,因为我在pa中看到多个请求st以获取禁用所有或仅允许n个远程方法等的功能。请参阅