使用tedious 做query時push array無法用
发布于 8 年前 作者 PingStyle 2874 次浏览 来自 问答

我在做sql資料查詢的時候 發現無法把抓到的值push到array中
resultarray.push(rowObject); 把db抓到的值push到array中 前端用ajax收到資料後 發現收到的陣列resultarray是空的 但自己另外寫的陣列可以正常傳送 是因為callback的關係嗎?

app.post('/search_address', urlencodedParser, function (req, res) {
    var sql = "select house_number,landlord_number,tenant_number,house_address from house where house_address like '%" + req.body.address_search + "%'";

    request = new Request(sql, function (err) {
        if (err) {
            console.log(err);
        }
    });
    
    var result ="";
    var resultarray = [];
   

    request.on('row', function (columns) {
     
        columns.forEach(function (column) {
            var rowObject = {};
            if (column.value === null) {
                        console.log('NULL');
                    } else {
       
                    rowObject[column.metadata.colName] = column.value;
                   
                    }
            resultarray.push(rowObject);
         
        });
       
    });
    request.on('done', function (rowCount, more) {
        console.log(rowCount + ' rows returned');
    });
    res.send(resultarray);

    connection.execSql(request);
})

請問我是哪邊有操作錯誤嗎? 謝謝

1 回复

res.send(resultarray); 应该放在 request.on(‘done’, function (rowCount, more) { … }) 里面

回到顶部