В настоящее время я пытаюсь выполнить подключение на стороне сервера к серверу iCloud, используя новый CloudKit JS от Apple. Согласно WWDC 2015 «CloudKit JS и веб-сервис», поскольку CloudKit JS является чистой структурой JS, вы можете использовать ее во всех средах JS, таких как узел JS.Cloudkit JS && Node JS
Я скопировал исходный код CloudKit JS из https://cdn.apple-cloudkit.com/ck/1/cloudkit.js и вставил его в файл с именем «cloudkit.js». Вот демо, что я пробовал:
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")
})
CloudKit, кажется, правильно настроить, так как все функции правильно называется. Но обратный вызов executeQuery никогда не вызывается. Зачем ?
Есть ли кто-то, кто уже успел настроить CloudKit JS в среде сервера?
Заранее спасибо
Спасибо за ваш ответ. Я получил сообщение об ошибке: «Отсутствие родного обещания, установите Fetch.Promise на вашу любимую альтернативу». Этот метод работал на вас? –
Обещания были доступны в узле с версии 0.11 (текущая версия - 0.12). Вы можете обновить узел или использовать что-то вроде https://github.com/jakearchibald/es6-promise в качестве обратной засыпки. –
Работает как очарование! Большое спасибо. –