что такое код nodejs для этой команды curl - PullRequest
0 голосов
/ 09 апреля 2019

Я могу успешно выполнить эту команду curl из сценария оболочки Unix и увидеть вывод в 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

Я попытался использовать онлайн-конвертер 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

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019

Возможно, ответ не будет возвращен до завершения сценария.Вы хотите, чтобы запрос был асинхронным:

Вы можете использовать request-обещание

Вот пример

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

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

Это будет ожидать ответа.

0 голосов
/ 10 апреля 2019

Простая версия параметров вашего API с использованием request-promise:

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

function downloadFile() {
    var options = {
        uri: 'https://DMS.com:3001/download/csv',
        method: 'POST',
        auth: {
            user: 'helloworld',
            pass: 'hello_password',
            sendImmediately: true
        },
        headers: {
            Accept:'application/vnd.myDMS-dms-api+json; version=1'
        },
        form: {
           'header': 'true'
        }
    };

    rp(options)
        .then(function (body) {
            console.log('Downloaded body was %d long', repos.length);
        })
        .catch(function (err) {
            console.log(err)
        });
}

downloadFile()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...