我有一些Node.js脚本,在我的计算机上运行良好,但在服务器上却不行。 我有两台服务器:第一台(服务器1)上运行web应用程序,第二台(服务器2)包含文件。
var fs = require('fs');
var FTPClient = require('ftp');
var c = new FTPClient();
c.connect({
host: "192.168.200.2",
user: "*****",
password: "******"
});
c.on('ready', function() {
console.log("Connected to datastore !");
var dateFile = './Dictionnary/lastUpdate.json';
var csvFile = '//192.168.200.2/Alfa/file4457.csv'
var lastUpdate;
fs.stat(csvFile, (err, stat) => {
if (err) {
console.error(err);
};
var date = { mtime: stat.mtime }
var lastDate = new Date(jsonfile.readFileSync(dateFile).mtime);
var newDate = new Date(stat.mtime);
if (newDate <= lastDate) {
console.log('Dictionnary up-to-date');
} else {
console.log('Update Needed');
var DeleteQuery = mySqlClient.query('DELETE FROM dictionnary');
csv = fs.readFile(csvFile, 'utf-8', (err, data) => {
if (err) {
throw err
};
dictionnary = parseCSV(data);
for (i = 0; i < dictionnary.length - 1; i++) {
var insertQuery = ("INSERT INTO Dictionnary VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
var query = mySqlClient.query(insertQuery, [dictionnary[i][0], dictionnary[i][1], dictionnary[i][2], dictionnary[i][3], dictionnary[i][4], dictionnary[i][5], dictionnary[i][6], dictionnary[i][7], dictionnary[i][8], dictionnary[i][9], dictionnary[i][10], , dictionnary[i][11], , dictionnary[i][12]]);
};
}
}
}
当我在我的电脑上运行脚本时,我可以在(服务器2)上找到文件,但是当我在(服务器1)上运行它时,它不再起作用,我遇到了这个错误:
Error: ENOENT: no such file or directory, open '//192.168.200.2/Alfa/file4457.csv'
我认为这可能是密码的问题,所以我尝试使用
//192.168.200.2/Alfa/file4457.csv
、./Alfa/file4457.csv
和Alfa/file4457.csv
,但都不起作用。我检查了路径,它是正确的。对于fs.stat()
,这不是问题,我仍然可以将其替换为c.lastMod()
,但我找不到可以替换fs.readFile()
的内容。谢谢您的阅读。