首页 > 解决方案 > 这个 curl 命令的 nodejs 代码是什么

问题描述

我可以从 Unix shell 脚本成功执行此 curl 命令,并且可以在 C:\Users\OutputFile.csv 中看到输出。NodeJS中的等效代码是什么

curl -k  -v  --user 'helloworld:hello_password' 
--header 'Accept: application/vnd.myDMS-dms-api+json; version=1' 
-X POST  'https://DMS.com:3001/download/csv' 
--data header=true  -o C:\Users\OutputFile.csv

我尝试使用 Online curl 到 nodeJS 转换器,它生成了以下 NodeJs 代码:-

    var request = require('request');
    var headers = {
       'Accept': 'application/vnd.myDMS-dms-api+json; version=1'
     };
    var options = {
        url: 'https://DMS.com:3001/download/csv',
        method: 'POST',
        headers: headers,
        auth: {
            'user': 'helloworld',
            'pass': 'hello_password'
            }
     };

   function callback(error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body);
          }
     }
   request(options, callback);

但是,当我运行此 NodeJS 代码时,它不会显示任何输出。另外我怎样才能得到这个输出到 C:\Users\OutputFile.csv

标签: node.jscurl

解决方案


也许在脚本终止之前没有返回响应。您希望请求是异步的:

您可以使用请求承诺

这是一个例子

var rp = require('request-promise');

function someFunction() {
    let options = {
        url: `someURL`,
        method: 'POST',
        body: {
           some: 'payload'
          },
        json: true 
    };
    return rp(options);
}

这将等待响应。


推荐阅读