Javascript Node.js为什么获胜';无法找到路径和SFTP下载
下面是从SFTP服务器下载.csv文件的代码。它可以工作,并会自动将文件下载到我电脑上的下载文件夹 我有两个问题 首先,我希望React前端的用户得到提示下载文件,而不是下载到我的下载文件夹。现在它没有,它将在本地保存文件,仅此而已 第二,我想更改下载位置,从下载文件夹更改为项目根目录中的文件夹 我尝试在下面更改此部分:Javascript Node.js为什么获胜';无法找到路径和SFTP下载,javascript,node.js,reactjs,path,ssh2-sftp,Javascript,Node.js,Reactjs,Path,Ssh2 Sftp,下面是从SFTP服务器下载.csv文件的代码。它可以工作,并会自动将文件下载到我电脑上的下载文件夹 我有两个问题 首先,我希望React前端的用户得到提示下载文件,而不是下载到我的下载文件夹。现在它没有,它将在本地保存文件,仅此而已 第二,我想更改下载位置,从下载文件夹更改为项目根目录中的文件夹 我尝试在下面更改此部分: const localePath = path.join( process.env.HOME || process.env.USERPROFILE,
const localePath = path.join(
process.env.HOME || process.env.USERPROFILE,
'Downloads/' + fileName,
致:
或:
但它们都不工作,并且返回“ssh2 sftp客户端”错误
完成下面的代码
const path = require('path');
const Router = express.Router();
Router.get('/getCSVFiles', async (req, res) => {
try {
let Client = require('ssh2-sftp-client');
let sftp = new Client();
const fileName = 'myfile.csv';
const remotePath = '/Out/' + fileName;
const localePath = path.join(
process.env.HOME || process.env.USERPROFILE,
'Downloads/' + fileName,
);
sftp
.connect(
{
host: '10...',
port: '....',
username: 'username',
password: 'pwd',
},
'once',
)
.then(() => {
sftp
.fastGet(remotePath, localePath, {})
.then(() => {
res.header('Content-type', 'text/csv; charset=windows-1251');
res.sendStatus(200);
sftp.end();
})
.catch((err) => {
sftp.end();
console.log(err, 'fastGet method error');
});
})
.catch((err) => {
sftp.end();
console.log(err, 'connect method error');
});
} catch (error) {
res.status(400).send('Error while getting list of files. Try again later.');
}
});
const localePath =
'../files/' + fileName,
const path = require('path');
const Router = express.Router();
Router.get('/getCSVFiles', async (req, res) => {
try {
let Client = require('ssh2-sftp-client');
let sftp = new Client();
const fileName = 'myfile.csv';
const remotePath = '/Out/' + fileName;
const localePath = path.join(
process.env.HOME || process.env.USERPROFILE,
'Downloads/' + fileName,
);
sftp
.connect(
{
host: '10...',
port: '....',
username: 'username',
password: 'pwd',
},
'once',
)
.then(() => {
sftp
.fastGet(remotePath, localePath, {})
.then(() => {
res.header('Content-type', 'text/csv; charset=windows-1251');
res.sendStatus(200);
sftp.end();
})
.catch((err) => {
sftp.end();
console.log(err, 'fastGet method error');
});
})
.catch((err) => {
sftp.end();
console.log(err, 'connect method error');
});
} catch (error) {
res.status(400).send('Error while getting list of files. Try again later.');
}
});