(NodeJsを使用して)Sqilte DBからデータを取得しようとしています。 すべての行エントリをログに出力したい。 何らかの理由でエラーが発生していないが、結果が得られない。Nodejs&Sqlite - 各ステートメントが結果を返さない理由
私は、次のコードでDBを作成しています:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('usersDataBase');
db.run("CREATE TABLE IF NOT EXISTS usersTable (id INTEGER PRIMARY KEY AUTOINCREMENT , userName TEXT, password TEXT)");
db.close();
と次のコードでユーザーを追加:
:var db = new sqlite3.Database('usersDataBase');
var stmt = db.prepare("INSERT INTO usersTable VALUES (null, ?, ?)", userName, passw);
stmt.finalize();
db.close();
は、最後に私が持つテーブルの内容を印刷しようとしています
app.get("/view", function(req, res) {
var db = new sqlite3.Database('usersDataBase');
db.each("SELECT * FROM usersTable", function(err, row) {
if (err) console.log('Error: ' + err);
else console.log(row.userName + ": " + row.password)
//db.close();
});
//db.close();
// get to main screen
console.log('Sending main.html')
res.sendFile('main.html', {root: __dirname })
})
しかし、画面上に何も表示されません。 (エラーメッセージは表示されず、結果は表示されません)
私は間違っていますか?
はdb.Close()が最後であるべきライン。コールバックが呼び出される前にそれを閉じるのではないですか? –