我是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格式。请就此问题提出一些解决方案。
答案 0 :(得分:1)
像
这样的东西router.map(function () {
this.root.bind(function (req, res) {
db.all("SELECT * FROM employee", function(err, rows)
{
res.send(JSON.stringify(rows));
});
});
});
OR
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);
});
});
});
应该可以正常工作,具体取决于“行”对象是否简单。