在MySQL Loopback Connector上执行原始查询

mar*_*ore 10 mysql node.js strongloop loopbackjs

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

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

jla*_*eau 25

这是一个基本的例子.如果您有产品型号(/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 }
        }
    );

};
Run Code Online (Sandbox Code Playgroud)

这将创建以下端点示例:GET/Products/byCategory?group = computers

http://docs.strongloop.com/display/public/LB/Executing+native+SQL

  • 我尝试了一个完全相同的代码示例,但发现上面的例子有很多问题,因为我的情况postgresql不接受"?",它会接受"$ 1,$ 2"而不是"?" 和params必须是数组对象ex.var params = []; params.push(ST1); params.push(ST2); (5认同)