CNode

mysql 查询问题

Zzhangking520发布于13 年前最后回复13 年前9 回复4480 浏览0 收藏

var client = require("../model/db").client; var login; login = function (response, request, arguments) { var result = ""; client.query("select * from user", function (err, results) { if (err) { throw err; } result = JSON.stringify(results); response.write(result); client.end(); }); response.end(); };

前台收到空数据,求解。

查看回复

回复 (9)

S
sumory#1·13 年前

response.end写错位置了,写回调里

Z
zhangking520#3·13 年前
引用 sumoryresponse.end写错位置了,写回调里

我想问一下 我要把里面的result 作为结果return要怎么写 为什么result 在query里赋值,在外面得到的是空值

S
sumory#4·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@zhangking520 这个的话,我建议你先搞懂node.js的异步机制。你把代码写在外面,并不一定是在你的回调执行完了再执行,所以就不一定收到值.

Z
zhangking520#5·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@sumory 就是可能query没执行完,就return了 所以是空值?那应该怎么解决呢

S
sumory#6·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@zhangking520 你是初学者吗?我建议你先搞懂nodejs的‘异步机制’,清楚回调函数的执行过程

S
sumory#7·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@zhangking520 你搞懂了自然就明白了,没有‘怎么解决’的问题,先把基本概念搞懂,再来写代码,否则会把自己乱死掉

Z
zhangking520#8·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@sumory 好的 我先去看书 以前搞java的 刚刚接触这个

S
sumory#9·13 年前
引用 sumoryresponse.end写错位置了,写回调里

@zhangking520 嗯,我以前也是java的,刚接触这个的时候也是一时转不过弯来。你一定先把基本概念搞懂了再上手写代码,不要似是而非.

参与回复
登录后即可参与回复。登录