0

node.jsは初めてです。node.jsを使用してサーバーサイドアプリケーションを作成しました。このアプリケーションでは、データベースからデータを取得しています。私はこれのために次のコードを持っています:

router.map(function () {
this.root.bind(function (req, res) {  
db.all("SELECT * FROM employee", function(err, rows)
{
    rows.forEach(function(row)
    {
         str=str+' '+row.name+'     '+row.empid+'    '+row.address+'   '+row.mobile;
        res.send(str);

    });


});

});

このコードは、res.send(str)の後にコントロールが戻るため、データベースの最初の行のみを返します。iOSアプリにjson形式のデータが必要です。この問題の解決策を提案してください。

4

1 に答える 1

1

何かのようなもの

router.map(function () {
    this.root.bind(function (req, res) {  
        db.all("SELECT * FROM employee", function(err, rows)
        {
            res.send(JSON.stringify(rows));
        });
    });
});

また

router.map(function () {
    this.root.bind(function (req, res) {  
        db.all("SELECT * FROM employee", function(err, rows)
        {
            var out = [];
            var rowidx;
            for(rowidx in rows) {
                out.push({name: rows[rowidx].name, empid: rows[rowidx].empid, address: rows[rowidx].address, mobile: rows[rowidx].mobile}); 
            }
            res.send(JSON.stringify(out);
        });
    });
});

「rows」オブジェクトが単純であるかどうかに応じて、正常に機能するはずです。

于 2012-06-01T04:10:46.327 に答える