【发布时间】:2018-09-27 04:07:32
【问题描述】:
我有一个问题,我需要你的帮助..
是否可以创建一个应用程序,将所有.txt 放在一个目录中,然后将其文件名保存到数据库中,如果对文件名进行验证,则不会在数据库中保存两次。
我的代码在这里:
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(*) FROM txtfilename WHERE filename="${filename}"';
con.query(selectSql, (err, results, fields) => {
// TODO: Catch the error
var matchingEntriesCount = results
if (matchingEntriesCount === 0) {
// TODO: Do your insert query
console.log('File', results, 'has been added');
var insertsql = "INSERT INTO txtfilename (filename) VALUES ('"+ results +"')";
con.query(insertsql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
}
});
});
watcher.on('unlink', function(path) {console.log('File', path, 'has been removed');});
});
我的代码现在可以读取将保存在目录中的所有文件,但我在 SELECT 和 INSERT 上遇到了问题。
我想使用 select 进行验证。为了不在数据库中插入相同的文件名。
最后是插入。我想插入每个将保存到目录的新文件名。
希望有人可以帮助我。
我只是 NodeJS 的新手
【问题讨论】:
-
您要添加文件名还是完整(或相对)路径?
-
只是文件名.. 然后我将调用所有文件名然后保存所有文件名内容并合并为一个..
标签: javascript mysql node.js select insert