Python 插入新数据时,是否需要刷新NodeJS中的Sqlite3数据库?
我正在运行一个NodeJS程序,在这个程序中我调用我的数据库并搜索特定的条目。在我的Python使用者中,我正在向数据库添加值,但不知何故,数据库没有在NodeJS端得到更新。我将这两个条目输出到控制台中,当我从表中选择*时,在python端,它输出新条目,但在NodeJS端,它只输出3个条目,它们是在部署之前添加的 在我的NodeJS fill中,我调用数据库,输入我的查询,如果找到条目,我返回值,然后关闭连接,在下一条消息中重新打开我的数据库:Python 插入新数据时,是否需要刷新NodeJS中的Sqlite3数据库?,python,node.js,python-3.x,sqlite,node-sqlite3,Python,Node.js,Python 3.x,Sqlite,Node Sqlite3,我正在运行一个NodeJS程序,在这个程序中我调用我的数据库并搜索特定的条目。在我的Python使用者中,我正在向数据库添加值,但不知何故,数据库没有在NodeJS端得到更新。我将这两个条目输出到控制台中,当我从表中选择*时,在python端,它输出新条目,但在NodeJS端,它只输出3个条目,它们是在部署之前添加的 在我的NodeJS fill中,我调用数据库,输入我的查询,如果找到条目,我返回值,然后关闭连接,在下一条消息中重新打开我的数据库: function findUserByLogi
function findUserByLogin(hash) {
const db = new sqlite3.Database('./database_worker/cracked_pw.sqlite', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the my database.');
});
var databaseCheckHash = x;
var sql = 'SELECT cracked '
sql += 'FROM password '
sql += 'WHERE hash = ? '
var sql2 = 'SELECT * from password'
db.get(sql, hash, function(error, row) {
if (error) {
console.log("Error while checking the Database for Hash: " + error)
return
} else {
try {
db.all(sql2, [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.id + " " + row.hash + " " + row.cracked);
});
});
// Calling an undefined `item `variable
console.log("length: " + (row.cracked).length)
databaseCheckHash = row.cracked;
printUserEmail(row.cracked)
} catch (e) {
if (e instanceof ReferenceError) {
printError(e, true);
} else {
printError(e, false);
}
} finally {
if (databaseCheckHash.length == 3) {
databaseResult = databaseCheckHash;
return databaseResult;
} else {
sendMsgToMQ();
}
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Close the database connection.');
});
}
}
});
}
在我的Python使用者上,我添加了新条目:
import pika
import sqlite3
import os
print("[DB-Worker]Worker (consumer) storing information to database")
print("[DB-Worker]Check if SQLite database exists")
db = "./database_worker/cracked_pw.sqlite"
if not os.path.isfile(db):
print("[DB-Worker]Database does not exist, creating now")
conn = sqlite3.connect(db)
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS password (id INTEGER, hash VARCHAR type UNIQUE, cracked VARCHAR, PRIMARY KEY(id))')
conn.commit()
cur.close()
conn.close()
else:
print("[DB-Worker]DB exists")
def storage_callback(ch, method, properties, body):
print(f"[DB-Worker]Attempting to save {body}")
message = body.decode('UTF-8')
list = message.split(',')
hash = list[0]
password = list[1]
print(f"[DB-Worker]] hash is {hash}, cracked pw is {password}")
conn = sqlite3.connect(db)
cur = conn.cursor()
cur.execute('INSERT OR IGNORE INTO password (hash, cracked) values ("'+hash+'", "'+password+'")')
cur.execute("SELECT * FROM password")
print(cur.fetchall())
conn.commit()
cur.close()
conn.close()
print(f"[DB-Worker]Committed to database")
我是否需要在NodeJS服务器端重新加载或刷新数据库?
提前谢谢 如果您停止并启动node.js进程,它是否会接收到更改?数据库正在写入的文件系统是否有任何有趣或不同之处?