Azure函数httptrigger没有从SQL Server请求返回响应

时间:2017-08-24 01:11:38

标签: sql-server node.js callback azure-functions tedious

我正在尝试创建连接到SQL Server的Azure功能。响应没有得到执行。我可以看到日志中返回的正确数据。关于如何在请求完成后返回context.res的任何想法?

iptables

2 个答案:

答案 0 :(得分:2)

请将您的代码更改为:

var rows = [];

module.exports = function(context, req, res) {
    context.log('JavaScript HTTP trigger function processed a request.');

    if (req.query.nfcID) {
        connection.on('connect', function(err) {
            request = new Request("select tagUID, ProductID, Active From Tags where TagUID = " + req.query.nfcID, function(err, rowCount, rows) {
                if (err) {
                    context.log(err);
                } else {

                    connection.close();
                    context.log('rows: ' + rowCount);

                }
            });

            request.on('row', function(columns) {
                var row = {};
                columns.forEach(function(column) {
                    row[column.metadata.colName] = column.value;
                });
                rows.push(row);

                context.log(rows);

                context.res = {
                    body: JSON.stringify(rows);
                }

                context.done();
            });

            connection.execSql(request);
        });

    } else {
        context.res = {
            status: 400,
            body: "Please provide the nfc id"
        };

        context.done();
    }


};

答案 1 :(得分:2)

设置context.done()的值后,您错过了对context.res的调用。如果没有context.done(),函数的调用就会超时。