Javascript 使用Nodejs在数据库上自动保存文件名
我和NodeJS有麻烦。我想创建一个服务器端脚本,它将把一个新文件的文件名保存到它的目录中,并自动保存到数据库中 这是我的密码:Javascript 使用Nodejs在数据库上自动保存文件名,javascript,mysql,node.js,Javascript,Mysql,Node.js,我和NodeJS有麻烦。我想创建一个服务器端脚本,它将把一个新文件的文件名保存到它的目录中,并自动保存到数据库中 这是我的密码: const path = require('path') //mysql Connecion var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "sms"
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
。您有什么问题?我想将text文件夹中的所有新文件名保存到数据库中,您的代码做什么?还是不行?现在我的代码可以读取所有新文件并将其文件名保存到数据库中。。但我想要的是,当文本文件夹中保存了一个新文件时,它会自动将其文件名保存到数据库中。。现在我需要刷新我的节点js来保存所有的新文件,而且我在验证相同的文件名时遇到了问题。。