【发布时间】:2018-07-25 08:16:25
【问题描述】:
我在 Node.js 中有一些脚本,当我在我的计算机上运行它时它可以工作,但当我在服务器上时却不行。 我有两台服务器:我在第一台(服务器 1)上运行 webApplication,第二台(服务器 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'
我认为这是 pass 的问题,所以我尝试使用 //192.168.200.2/Alfa/file4457.csv、./Alfa/file4457.csv、Alfa/file4457.csv
但这不起作用。
我检查了路径,他很好。
对于fs.stat(),这不是问题,我仍然可以用c.lastMod() 替换它,但我找不到可以用来替换fs.readFile() 的东西
感谢您的阅读。
【问题讨论】: