Изменить данные JSON, а затем POST в API

То, что я пытаюсь сделать, это нажать мой API для COS блога, а затем заменить /blog на "", чтобы удалить подкаталог blog из домена. В настоящее время мой код выглядит следующим образом для запроса GET к API с использованием запроса npm.

'use strict';
require('dotenv').config({ path: 'variables.env'});
const http = require('https');
const request = require('request');
const fs = require('fs');

// Use this line to change the endpoint that you want to hit
const url = "https://api.hubapi.com/content/api/v2/blog-posts?
limit=1000&hapikey=" + process.env.HAPIKEY;

request
.get(url)
.on('response', (response) => {
console.log(response.statusCode) // 200
console.log(response.headers['content-type']) // Header response
})
.pipe(fs.createWriteStream('outputV3.json'))

Это сохраняет всю информацию моего блога в файл output.json. Теперь, когда у меня есть все данные в файле JSON, я хочу превратить их в строку remove /blog в конце моего URL, а затем отправить POST в другую конечную точку. Я подумал о потоковой передаче этих данных JSON непосредственно в мой запрос POST, но сначала мне нужно обработать данные, чтобы удалить /blog с конца absolute_url. Вот где я застрял. Я перебираю данные JSON, превращая их в строку, а затем, удалив page_slug, хочу опубликовать его по URL-адресу. Следующее не работает для меня

'use strict';
require('dotenv').config({ path: 'variables.env'});
const http = require('https');
const request = require('request');
const fs = require('fs');


(function() {
for(let i=0; i<outputJson.objects.length; i++) {
    let postId = outputJson.objects[i].id.toString();
let newSlug = outputJson.objects[i].slug.replace("blog/","");
let urlToPut = "https://api.hubapi.com/content/api/v2/blog-posts?limit=1000&hapikey=" + process.env.HAPIKEY;
urlToPut = urlToPut.replace("blogPostId", postId);

let put_data = JSON.stringify({
    "slug": newSlug
});
request.put(urlToPut, put_data, callback);
}
});

0 ответов

Другие вопросы по тегам