如何将ID发送到数据库以便在回调函数

时间:2017-07-16 21:50:26

标签: javascript node.js rest

我在 db.js 中有一个代码段,如下所示,

exports.asyncGetAllData = function (cb) {
        connection.connect(function(err) {
            connection.query("SELECT * FROM prices WHERE=" + "'" + ID + "'", function (err, result) {
                //console.log("info:" + cb);
                if (err) console.log("Error: " + err);
                else
                {
                    cb(result);
                }
            });
        });
};

我想将 app.js 中的ID和ID传递到 db.js 中的asyncGetAllData函数。以下代码段位于app.js

app.get('/test/getPriceTrend/:parameter', function(req, res) {
console.log('SERVER::testGetPriceTrend');
console.log(req.url);
var str=req.url;

db_connection.asyncGetAllData(function(data) {
    var obj = str.split("&");
    var ID = obj[0].split("/")[3];
    console.log(JSON.stringify(data));
    res.setHeader('Accept', 'application/json');
    res.writeHead(res.statusCode);
    //The following piece of code will send information from the database
    res.write("hello");
    res.end();
});

});

在上面提到的代码(app.js)中,我从get请求中解析了ID。我想将此ID发送到驻留在db.js中的asyncGetAllData函数。如何发送ID参数并获取结果?

提前致谢,

1 个答案:

答案 0 :(得分:1)

您可以使用附加参数扩展该功能

exports.asyncGetAllData = function (cb, ID) {
    connection.connect(function(err) {
        connection.query("SELECT * FROM prices WHERE=" + "'" + ID + "'"  ...

然后在app.js中调用该函数时传递它

var str = req.url;
var obj = str.split("&");
var ID  = obj[0].split("/")[3];

db_connection.asyncGetAllData(function(data) {
    ...
}, ID);