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

标签 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"
});

//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/

相关文章:

python - 将 Mysql 时间戳转换为 Python 的日期时间

mysql group by 和 sum 结果来自两个表的2个字段

c# - 如何获取单选按钮值并将其存储在mysql数据库中

node.js - Passport Github 策略不起作用并抛出错误

javascript - 如何在本地主机或开发系统 Ubuntu 中运行 openshift MEAN 项目?

javascript - 在一个过程中 react : How to call multiple state-changing functions,?

javascript - 如何在 C# 中按组名添加单选按钮的选定值?

node.js - AD 授权组更改未反射(reflect)

javascript - 从 html 的一部分创建 png

javascript - JavaScript 函数对象与 Scala 函数对象有何不同?