Нужна помощь в переписывании эквивалентного кода Curl для Node JS Express - PullRequest
0 голосов
/ 23 октября 2019

Нужна помощь в переписывании эквивалентного кода Curl для узла JS Express

У меня есть эта команда curl, которая отлично работает в командной строке Windows

curl --request PUT --header "PRIVATE-TOKEN: VQtT2w4suWM6wnD3m6qt"  --header "Content-Type: application/json" --data @C:\Gatling2\gatling3james\src\gatling\resources\data\input.json "https://code.abc.cloud/api/v4/projects/159/repository/files/%2Fsrc%2Fgatling%2Fresources%2Fdata%2Finput-gamekeeper%2Ejson?ref=master"

Теперь с этим замечательным инструментом https://curl.trillworks.com/#node я получил выше curl, преобразованный в Node.js

var request = require ('request');

var headers = {
    'PRIVATE-TOKEN': 'token',
    'Content-Type': 'application/json'
};

var dataString = '@C:\Gatling2\gatling3james\src\gatling\resources\data\input.json';

var options = {
    url: 'https://code.abc.cloud/api/v4/projects/159/repository/files/%2Fsrc%2Fgatling%2Fresources%2Fdata%2Finput-gamekeeper%2Ejson?ref=master',
    method: 'POST',
    headers: headers,
    body: dataString
};

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

request(options, callback);

Теперь в моем проекте js для узла я установил запрос, используя npm install request

Теперь я переписал приведенный выше код curl в узел js, преобразованный в мой маленький проект js POST

const  express = require('express')
const  bodyParser = require('body-parser')
const  Gitlab  = require('gitlab')
const app =  express()
const request = require('request')

app.use(bodyParser.urlencoded({extended:false}))
app.post('/postgatlingrequests',(req,res)=>{
    var request = require('request');

    var headers = {
       'PRIVATE-TOKEN': 'token',
       'Content-Type': 'application/json'
    };

   var dataString = '@C:\Gatling2\gatling3james\src\gatling\resources\data\input.json';

   var options = {
       url: 'https://code.abc.cloud/api/v4/projects/159/repository/files/%2Fsrc%2Fgatling%2Fresources%2Fdata%2Finput-gamekeeper%2Ejson?ref=master',
       method: 'POST',
       headers: headers,
       body: dataString
    };

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

  request(options, callback)});

   app.listen(3000,function(){
       console.log("Started on PORT 3000");
      })

Я перезапустил сервер узла с помощью узла index.js и получил сообщение suucess при запускеPORT 3000 Теперь, когда я набираю http://localhost:3000/postgatlingrequests в браузере, он говорит, что localhost отказался подключаться.

Я ожидаю, что локальный сервер должен иметь возможность отправлять POST-запрос, очень похожий на CURL-запрос, может, некоторыеодна помощь

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