Механизм скручивания, внутри кода expressjs - PullRequest
1 голос
/ 22 марта 2019

Я новичок в большинстве этих концепций, поэтому прошу прощения, если этот вопрос тривиален.

У меня есть скрипт, который отправляет HTTP-запрос POST в Curl для отправки данных из файла json.

curl https://XXXX.zendesk.com/api/v2/channels/voice/tickets.json ^  
-d @C:\Users\Agent\Desktop\json.json ^   -H "Content-Type: application/json" -v -u AAAAA@BBBBB.com/token:99dd6ghxsdrf85fgYdHWb33VYCZXI35fg8w13pfL -X POST

мне нужно использовать механизм для создания HTTP-запросов Curl в моем коде expressjs,

var express = require('express');
var app = express();

app.use(express.static('public'))

app.get('/index.html',function(req,res) {
    res.sendFile(__dirname+"/"+'index.html');

})

app.get('/express_get',function(req,res) {
   response ={
       firstname : req.query.firstname,
       lastname: req.query.lastname,
       Email: req.query.email
   };
    console.log(response);
    res.end(JSON.stringify(response));
})


var server = app.listen(8000,function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log('App running on http://127.0.0.1:8000')
})

но, к сожалению, я не знаю, как это сделать !!

так что вопросы:

1:

-d @C: \ Users \ Agent \ Desktop \ json.json в коде Curl, это файл, который я хочу использовать, он содержит данные, что вы думаете о его замене ( JSON.stringify (response) ) в коде expressjs !!

2:

и как я могу сделать ту же самую работу curl внутри моего кода expressjs !!!!

Любая помощь, любые предложения приветствуются!

1 Ответ

1 голос
/ 22 марта 2019

Вы хотите запросить https://XXXX.zendesk.com/api/v2/channels/voice/tickets.json с одного из ваших экспресс-маршрутов?

Для этого есть встроенный модуль Node.js HTTP (https://nodejs.org/api/http.html#http_http_request_options_callback),, который предлагает возможность сделать запрос POST к хосту.

Ниже приведен примеро том, как его использовать

// From https://nodejs.org/api/http.html

const postData = querystring.stringify({
  'msg': 'Hello World!'
});

const options = {
  hostname: 'www.google.com',
  port: 80,
  path: '/upload',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
};

const req = http.request(options, (res) => {
  console.log(`STATUS: ${res.statusCode}`);
  console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
  res.setEncoding('utf8');
  res.on('data', (chunk) => {
    console.log(`BODY: ${chunk}`);
  });
  res.on('end', () => {
    console.log('No more data in response.');
  });
});

req.on('error', (e) => {
  console.error(`problem with request: ${e.message}`);
});

// write data to request body
req.write(postData);
req.end();

Вам нужно будет прочитать свой JSON-файл (с помощью модуля FileSystem узла) и записать его в req после его строкового преобразования:)

...