У меня есть следующий элемент iron-ajax в моем html:
<iron-ajax
id="write-tweets"
body='[{"statuses": "{{tweets}}"}]'
url="/fscall"
handle-as="json">
</iron-ajax>
И у меня есть это в файле js для вышеупомянутого html:
Polymer({
is: "sample-app",
properties: {
tweets: {
type: Object,
value: [],
},
},
handleResponse(e){
console.log("_________Twitter responses aquired:_________");
this.tweets = this.tweets.concat(e.detail.response.statuses);
this.writeTweets();
},
На данный момент,tweets
- это массив объектов JSON:
Теперь я пытаюсь отправить это обратно на сервер node.js, чтобы я мог написать/ сохранить его в файл.
writeTweets(){
let ajax = this.root.querySelector('#write-tweets');
ajax.generateRequest();
}
... //some unrelated code
У меня в app.js есть следующее:
app.get('/fscall', (req, res) => {
fs.writeFile("tweets.json", JSON.parse(req.body, null, 4), function(err) {
if (err) {
console.log(err);
}
});
});
И здесь я сталкиваюсь с ошибками, я не знаю, как получить доступJSON, который я послал, req.body
кажется пустым.То же самое происходит, если я пытаюсь обернуть tweets
в получателе (например, сделать {returnTweets(){ return this.tweets;},
и body='[{"statuses": "{{returnTweets()}}"}]'
.
Кто-нибудь может посоветовать, как я могу передать JSON и распечатать его?
ОБНОВЛЕНИЕ
ОК, поэтому мне удается связать твиты с body
запроса, выполнив
<iron-ajax
method="POST"
id="write-tweets"
body$='{"statuses": {{tweetsParsed}}}'
url="/fscall"
handle-as="json">
</iron-ajax>
Где tweetsParsed
- это свойство, котороесодержит JSON.stringify
ed твиты. Теперь, если я проверяю ajax-запрос, он содержит твиты в теле:
ОДНАКО, явсе еще не получая ничего на стороне сервера и консоли. logging request.body
возвращает {}
... Есть идеи, почему это происходит?