【发布时间】:2020-01-17 14:46:33
【问题描述】:
get_customers() 函数在数据库中查询playlists 记录并将每一行记录到控制台。但是data 数组作为空列表数组返回。如何从 get_playlists 函数返回数据?
...result undefined
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('mydb.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the database.');
});
function get_playlists(db){
let sql = `SELECT DISTINCT Name name FROM playlists
ORDER BY name`;
let data = []
db.all(sql, [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.name);
data.push(row.name);
});
return data
});
}
result = get_playlists(db)
console.log('...result', result);
db.close();
【问题讨论】:
-
console.log 在 db.all 完成之前运行。将 get_playlists 的内容包装在一个 Promise 中并使用
data解决它
标签: javascript node.js sqlite