У кого-нибудь есть идея, почему я продолжаю получать эту ошибку, когда я делаю запрос GET
на номер /display-message
? { Error: Key path element must not be incomplete: [created_timestamp: ]
. Разве я не устанавливаю свой ключ правильно? Вы можете просмотреть здесь бэкенд https://jarvis-hd-live-151521.appspot-preview.com/display-message?last_updated=0Как установить ключ для хранилища данных GAE?
const key = datastore.key('created_timestamp', 5689413791121408);
app.post('/message', function (request, response) {
let message = request.body.Body;
response.send("<Response><Message>Heyyo!</Message></Response>");
var d = new Date;
var time = d.getTime();
let entity = {
key: key,
data: {
message: message,
created: time
}
};
datastore.upsert(entity)
.then(() => {
console.log("Post UPDATED successfully");
});
});
app.get('/display-message', function(req,res){
let last_updated_time = req.query.last_updated;
function updateMessage(timestamp, message) {
var output = {
success: 1,
data: message,
timestamp: timestamp
};
return res.json(output);
}
function checkMessage() {
console.log("Starting to check message function");
var timeout;
clearTimeout(timeout);
datastore.get(key)
.then((entities) => {
let entity_data = entities[0];
console.log(entity_data);
let message_text = entity_data.message;
let new_timestamp_value = entity_data.created;
if(!last_updated_time || last_updated_time < new_timestamp_value) {
updateMessage(new_timestamp_value, message_text);
}
else {
console.log("No new messages at this time");
timeout = setTimeout(function(){
checkMessage();
}, 1000 * 10); //10 seconds
}
})
.catch(function(){
console.log("Promise Rejected");
console.log(err);
})
};
checkMessage();
});