Я разрабатываю сервер node.js для получения внешних данных API, а затем использую свою клиентскую сторону для получения данных с моего сервера узлов вместо вызова сайтов API.
я использую экспресс, аксиомы, https
я создал конечные точки для моего node.js
один из рабочих примеров:
постоянный URL3 = https://strainapi.evanbusse.com/${STAIN_API}/strains/search/all;
var myDta = https.get(URL3, (resp) => {
let i = 1;
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
strains = JSON.parse(data)
return strains
});
}).on("error", (err) => {
console.info("Error: " + err.message);
});
var strains = myDta
app.get("/orders", (req, res, next) => {
res.json(myDta);
})
и конечная точка отлично работает в node.js.
Теперь, для получения сообщения wordpress, которое я делаю:
const URL1='https://example.com/wp-json/wp/v2/posts'
var postData = axios.get(URL1)
.then(response => response.data)
.then((data) => {
pushPost = [];
k = data[0]
pushPost.push(k)
console.info('my data ', pushPost) //This gives me the post data
return pushPost
})
var postDataRes = postData
console.info('this pushpost ', postDataRes)
//this gives me an empty array
app.get("/posts", (req, res, next) => {
res.json(postDataRes)
})
но я получаю пустой объект, но в консоли я могу получить нужный пост, используя:
console.info('my data ', pushPost)
не могу понять, почему я не могу отправить данные сообщения в конечную точку на моем сервере node.js.





Вам нужно будет прочитать и попрактиковаться в обещаниях/асинхронном выполнении javascript. Функции, которые вы определяете и предоставляете .then(), будут выполнять послеconsole.info('this pushpost ', postDataRes) Доступ к любым данным, которые вы получаете из промиса, можно получить только внутри его функции .then().
Кроме того, вы, вероятно, захотите выполнить выборку данных внутри своего маршрута, иначе это произойдет только один раз, когда загружается сервер expressjs.
const URL1='https://example.com/wp-json/wp/v2/posts'
app.get("/posts", (req, res, next) => {
axios.get(URL1)
.then(response => response.data)
.then((data) => {
const pushPost = [];
k = data[0]
pushPost.push(k)
console.info('my data ', pushPost) //This gives me the post data
res.json(pushPost)
})
})