Javascript 尝试使用节点获取sqlite数据
我在尝试将sqlite数据库中的数据转换为字符串时遇到了一个小问题。代码如下:Javascript 尝试使用节点获取sqlite数据,javascript,jquery,node.js,sqlite,Javascript,Jquery,Node.js,Sqlite,我在尝试将sqlite数据库中的数据转换为字符串时遇到了一个小问题。代码如下: router.get('/', function(req, res) { var db = req.db; var thisShouldWork = 'Hmmm'; db.all('select rowid as id, value from test', function(err, rows) { rows.forEach(function(row){
router.get('/', function(req, res) {
var db = req.db;
var thisShouldWork = 'Hmmm';
db.all('select rowid as id, value from test', function(err, rows) {
rows.forEach(function(row){
console.log(row.id + ": " + row.value);
thisShouldWork += 'Heeee';
});
});
thisShouldWork += 'What?';
console.log(thisShouldWork.toString());
res.send(thisShouldWork);
});
变量“thisShouldWork”只在代码末尾输出“HmmmWhat”,而其中也应该有一些“Heeee”。此外,console.log打印3行数据,因此for循环肯定正在执行。
我是否在没有意识到的情况下做了错事,或者是否有其他/更好的方法来实现相同的事情?回调是异步执行的 无论您以后想做什么,都必须在回调结束时移动:
router.get('/', function(req, res) {
var db = req.db;
var thisShouldWork = 'Hmmm';
db.all('select rowid as id, value from test', function(err, rows) {
rows.forEach(function(row){
console.log(row.id + ": " + row.value);
thisShouldWork += 'Heeee';
});
thisShouldWork += 'What?';
console.log(thisShouldWork.toString());
res.send(thisShouldWork);
});
});
嗨,谢谢你的回答!我刚试过,现在效果很好。