Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 插入新数据时,是否需要刷新NodeJS中的Sqlite3数据库?_Python_Node.js_Python 3.x_Sqlite_Node Sqlite3 - Fatal编程技术网

Python 插入新数据时,是否需要刷新NodeJS中的Sqlite3数据库?

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

我正在运行一个NodeJS程序,在这个程序中我调用我的数据库并搜索特定的条目。在我的Python使用者中,我正在向数据库添加值,但不知何故,数据库没有在NodeJS端得到更新。我将这两个条目输出到控制台中,当我从表中选择*时,在python端,它输出新条目,但在NodeJS端,它只输出3个条目,它们是在部署之前添加的

在我的NodeJS fill中,我调用数据库,输入我的查询,如果找到条目,我返回值,然后关闭连接,在下一条消息中重新打开我的数据库:

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进程,它是否会接收到更改?数据库正在写入的文件系统是否有任何有趣或不同之处?