如何通过 npm 安装 CloudKit JS 库
Posted
技术标签:
【中文标题】如何通过 npm 安装 CloudKit JS 库【英文标题】:How to install CloudKit JS library via npm 【发布时间】:2017-07-19 13:15:37 【问题描述】:我目前正在使用 CloudKit JS API 并使用 Node.js 编写脚本。
我通过以下方式安装了苹果here提供的云套件库:
curl "https://cdn.apple-cloudkit.com/ck/2/cloudkit.js" > cloudkit.js
脚本是下一个:
var fetch = require("node-fetch");
var CloudKit = require("./cloudkit.js");
CloudKit.configure(
services: fetch: fetch,
containers: [
containerIdentifier: 'CONTAINER',
apiToken: 'TOKEN',
environment: 'development'
]
);
var container = CloudKit.getDefaultContainer();
container.setUpAuth();
var publicDB = container.publicCloudDatabase;
function demoPerformQuery()
publicDB.performQuery(recordType: 'Schedule').then(function(response)
console.log(response)
).catch(function(error)
console.log(error)
)
demoPerformQuery();
运行时的输出是:
(node:30096) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): [CKError
ckErrorCode: AUTHENTICATION_FAILED
extensionErrorCode: undefined
isCKError: true
isError: true
isServerError: true
isServerExtensionError: true
message: no auth method found
name: Error
reason: no auth method found
recordName: undefined
redirectURL: undefined
retryAfter: undefined
serverErrorCode: AUTHENTICATION_FAILED
subscriptionID: undefined
uuid: 63b0ebe0-852a-454b-afc4-5a669e0a307c
zoneID: undefined
]
Error: no auth method found
at Function.value (/home/pi/Web/cloudkit.js:14:1432)
at /home/pi/Web/cloudkit.js:13:27352
at process._tickCallback (internal/process/next_tick.js:109:7)
_ckErrorCode: 'AUTHENTICATION_FAILED',
_uuid: '63a63eff-a962-4299-afcf-85c1a916f9ea',
_reason: 'no auth method found',
_serverErrorCode: 'AUTHENTICATION_FAILED',
_extensionErrorCode: undefined,
_retryAfter: undefined,
_recordName: undefined,
_subscriptionID: undefined,
_zoneID: undefined,
_redirectURL: undefined,
message: 'no auth method found'
正如我在*** 中读到的那样,解决方案可能是使用npm
安装它,但作为Node 新手,我被困在npm run-script install-cloudkit-js
的位置,因为我没有那个脚本并且我不知道如何继续。
【问题讨论】:
【参考方案1】:您的问题似乎与container.setUpAuth();
的承诺有关
尝试更改您的代码,使其看起来更像这样:
var fetch = require('node-fetch');
var CloudKit = require('./cloudkit');
CloudKit.configure(
services: fetch: fetch,
containers: [
containerIdentifier: 'CONTAINER',
apiToken: 'TOKEN',
environment: 'development'
]
);
var container = CloudKit.getDefaultContainer();
var database = container.publicCloudDatabase;
container.setUpAuth()
.then(function(userInfo)
publicDB.performQuery(recordType:'Schedule').then(function(response)
console.log(response);
).catch(function(error)
console.log(error);
)
)();
【讨论】:
以上是关于如何通过 npm 安装 CloudKit JS 库的主要内容,如果未能解决你的问题,请参考以下文章
在 Meteor 1.3 中导入通过 npm 安装的外部 Javascript 库
如何在我的 .js 文件中使用 npm 安装的包? [复制]
在 Laravel 应用程序上使用 npm 安装的 JS/CSS 库