使用命令行界面上传文件到Node.js

4
我正在为我们的应用程序创建自定义命令行界面(CLI)。现在,我需要从CLI上传文件。我们可以从CLI上传文件吗?假设我在终端中的项目文件夹位置为abc,它包含一个.js文件。我想获取该文件并上传到服务器。
我使用了multerexpress框架,在带有HTML表单的浏览器中上传文件。但是我不知道如何从命令行界面做到这一点。任何帮助或建议都将不胜感激。

你想要通过什么方式上传文件 - 使用HTTP、SSH还是FTP? - hassansin
我有一个REST API服务器端点,使用POST方法上传文件,因此需要HTTP方法。 - iLaYa ツ
使用 request 库:https://github.com/request/request#streaming - hassansin
我忘了提到。我只使用 request 进行登录操作和一些其他的 get 操作。那么我们能上传文件吗?我会去查一下。谢谢。 - iLaYa ツ
嗨,我检查了链接。但仍然有困难。我想要发送带有HTTP POST请求的headers,例如会话令牌和应用密钥。 - iLaYa ツ
可以使用POST请求选项发送自定义标头。类似于:fs.createReadStream('file.json').pipe(request.post(options)) - hassansin
1个回答

3

由于没有人回答我的问题,我自己写了一个答案。在评论区跟随@hassansin的指南和这个,解决了我的问题。感谢stackoverflow。

var formData = {
    file: fs.createReadStream('local/file/path/test.js'),
};

request.post(
    { url:'http://server/file/upload/url', 
      headers:{ 'X-SessionToken-Key':'XXXXXXXXX',
                'Content-Type':'multipart/form-data'},
      formData: formData
    }, function optionalCallback(err, httpResponse, body) {
          if (err) {
            return console.error('upload failed:', err);
          }
        console.log('Upload successful!  Server responded with:', body);
    });

1
不错!我在jest测试中使用了这个,非常容易。 - Vidar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接