首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用节点从mysql获取ember应用程序的数据

问使用节点从mysql获取ember应用程序的数据
EN

Stack Overflow用户
提问于 2014-05-16 18:03:37
回答 2查看 381关注 0票数 0

我有一个小的ember应用程序,它使用节点从mysql获取数据。目前,我使用以下方法获取客户数据:

代码语言:javascript
复制
function handleGet(connection,req,res) {
    var limit = ('undefined' === typeof req.params.limit) ? 200: req.params.limit;
    connection.query('SELECT * FROM customer LIMIT ' + limit, function handleSql(err, rows) {
        if (err){ logAndRespond(err,res); return; }
        if (rows.length === 0){ res.send(204); return; }
        res.send({customers : rows});
        connection.release();
    });
}

然而,我不想有一个功能,为客户,另一个为用户,等等。我怎么能抽象这一点?我可以把表名传递给函数,没问题。问题是,Ember期望响应上的表名。所以我不能改台词:

代码语言:javascript
复制
res.send({customers : rows});

至

代码语言:javascript
复制
res.send({tablename : rows});

因为它实际上发送的是'tablename‘这个词,而不是变量的内容,例如:{"tablename":{"id":1,“status”:“n”……}

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-17 02:51:55

既然另一个答案已经教训了你,下面是解决办法:

代码语言:javascript
复制
function handleGet(connection, req, res) {
    var limit = ('undefined' === typeof req.params.limit) ? 200: req.params.limit;
    var table = req.params.table || return logAndRespond(new Error("Missing table param", res));
    connection.query('SELECT * FROM ' + table + ' LIMIT ' + limit, function handleSql (err, rows) {
        if (err){ logAndRespond(err,res); return; }
        if (rows.length === 0){ res.send(204); return; }
        var result = {};
        result[table] = rows;
        res.send(result);
        connection.release();
    });
}
票数 0
EN

Stack Overflow用户

发布于 2014-05-16 18:13:01

您有一个错误,可能会阻止它发送表名变量值。您有"tablemame“而不是"tablename”。

此外,我强烈建议您从任何Javascript中删除实际的SQL语句!黑客可以修改您的代码以运行他们想要的任何SQL。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23701858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档