Obecnie próbuję wykonać połączenie po stronie serwera z serwerem iCloud za pomocą nowego CloudKit JS od Apple. Według WWDC 2015 "CloudKit JS and Web Service", ponieważ CloudKit JS jest czystym szkieletem JS, można go używać we wszystkich środowiskach JS, takich jak węzeł JS.Cloudkit JS && Node JS
Skopiowałem kod źródłowy CloudKit JS z https://cdn.apple-cloudkit.com/ck/1/cloudkit.js i wkleiłem go do pliku o nazwie "cloudkit.js". Oto prezentacja tego, co próbowałem:
var CloudKit = require("/some/folders/cloudkit.js")
function demoPerformQuery() {
CloudKit.configure({
containers: [{
containerIdentifier: 'myContainerIdentifier',
apiToken: 'myAPIToken',
environment: 'development'
}]
})
var container = CloudKit.getDefaultContainer();
var publicDB = container.publicCloudDatabase;
publicDB.performQuery({recordType: 'Items'}).then(function(response){
// never called :-(
})
}
var express = require('express')
var app = express()
app.get("/", function(){
demoPerformQuery()
})
var server = app.listen(8080, function() {
console.log("server launched")
})
Wygląda na to, że CloudKit jest poprawnie skonfigurowany, ponieważ wszystkie funkcje są poprawnie wywoływane. Ale wywołanie funkcji performQuery nigdy nie jest wywoływane. Czemu ?
Czy jest ktoś, kto już skonfigurował CloudKit JS w środowisku serwerowym?
góry dzięki
Dzięki za odpowiedź. Wystąpił błąd: "brak obietnicy, ustaw Fetch.Promise na swoją ulubioną alternatywę". Czy ta metoda działa dla ciebie? –
Obietnice były dostępne w węźle od wersji 0.11 (aktualna wersja to 0.12). Możesz uaktualnić węzeł lub użyć czegoś takiego jak https://github.com/jakearchibald/es6-promise jako backfill. –
Działa jak urok! Dziękuję Ci bardzo. –