gpt4 book ai didi

javascript - 使用 Nodejs 自动将文件名保存在数据库中

转载 作者:行者123 更新时间:2023-11-29 10:16:52 26 4
gpt4 key购买 nike

我在使用 NodeJS 时遇到了问题。我想创建一个服务器端脚本,它将新文件的文件名获取到其目录并自动将其保存到数据库。

这是我的代码:

const path = require('path')

//mysql Connecion
var mysql = require('mysql');

var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "sms"
});

//con checking if the database is connected
con.connect(function(err) {
if (err) throw err;

//watchfile directory if there's new added file
var chokidar = require('chokidar');
var watcher = chokidar.watch('texts/', {ignored: /^\./, persistent: true});

//for getting the filename only
var fs = require('fs');
var testFolder = 'texts/';

watcher.on('add', function(filePath) {

var filename = path.basename(filePath);

var selectSql = 'SELECT count(filename) AS matchingEntriesCount FROM txtfilename WHERE filename="${filename}"';
con.query(selectSql, (err, results, fields) => {
// TODO: Catch the error
console.log(err);
var matchingEntriesCount = results[0].matchingEntriesCount

if (matchingEntriesCount == 0) {
console.log('File', filename, 'has been added');
// TODO: Do your insert query
var insertsql = "INSERT INTO txtfilename (filename) VALUES ('"+ filename +"')";
con.query(insertsql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});

}
});
});

});

希望有人能帮助我解决我的问题..谢谢。

最佳答案

watcher 是函数 connect 的局部变量,因此在退出函数时会被删除。如果您希望代码正常工作,则需要将 watcher 设置为全局变量。

无论如何,当您调用 con.query 时,连接都会隐式建立,因此您可以完全删除 con.connect

关于javascript - 使用 Nodejs 自动将文件名保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com