2013-10-23 19 views
1

我想在Node.js中使用VersionOne JS SDK(https://github.com/versionone/VersionOne.SDK.JavaScript)。我只是下載整個庫,我的js文件將其放置在旁邊:Node.js - 如何使用外部庫(VersionOne JS SDK)?

var v1 = require('./v1sdk/v1sdk.js'); 
var V1Server = v1.V1Server; 
console.log(v1); 
console.log(V1Server); 

不幸的是有什麼不對勁,輸出我打電話

node app.js

後得到的是:

{} 
undefined 

有人可以指點我做錯了什麼,或者檢查sdk是否有效。 謝謝!

回答

2

您可以在定義V1Server的源代碼中看到它是帶構造函數的類。所以你需要使用new關鍵字並傳遞你的環境參數。

https://github.com/versionone/VersionOne.SDK.JavaScript/blob/master/client.coffee#L37

變種服務器=新V1Server( '雲'); //如果你需要更多的

+0

但是,到了V1Server的問題出現了。 V1Server被導出,我的理解是,在調用構造函數之前,我必須將它作爲變量「導入」。顯然這不適合我,我得到未定義的OBJ。當試圖實例化服務器時,我得到:TypeError:undefined不是一個函數。 –

+0

Jakub,如果你想得到更多的幫助,你可以在我們公共的HipChat房間裏看到我們:http://www.hipchat.com/grNeYfSGw。另外,我很樂意與您一起參加GoToMeeting會議,並幫助您解決問題。自從我們對JS SDK做了什麼以來已經有一段時間了,但是由於您正在嘗試使用它,我們很樂意爲您提供幫助。 – JoshGough

+0

HipChat鏈接更改爲http://www.hipchat.com/gwVRHWbnY ...不知道是否有辦法讓這種持續存在或不存在。 – JoshGough

2

你能試試,我只是從這裏更新sample.js腳本:

https://github.com/versionone/VersionOne.SDK.JavaScript/blob/master/sample.js

它拉在兩個模塊是這樣的:

var V1Meta = require('./v1meta').V1Meta; 
var V1Server = require('./client').V1Server; 

var hostname = "www14.v1host.com"; 
var instance = "v1sdktesting"; 
var username = "api"; 
var password = "api"; 
var port = "443"; 
var protocol = "https"; 

var server = new V1Server(hostname, instance, username, password, port, protocol); 

var v1 = new V1Meta(server); 

v1.query({ 
    from: "Member", 
    where: { 
     IsSelf: 'true' 
    }, 
    select: ['Email', 'Username', 'ID'], 
    success: function(result) { 
     console.log(result.Email); 
     console.log(result.Username); 
     console.log(result.ID); 
    },  
    error: function(err) { // NOTE: this is not working correctly yet, not called... 
     console.log(err); 
    } 
}); 

您可能需要獲取最新版本並從CoffeeScript構建JS。

我想我去年試用了「browserify」,這就是「v1sdk.js」文件生成的方式。但我不確定這是否是使用節點的最佳方法。這樣做可能更好,就像sample.js文件這樣做。

但是,我也檢查了對v1sdk.coffee的更改,哪個屬性導出了另外兩個模塊,就像方便一樣。有了這個,你可以看看sample2.js。唯一不同的部分就是這個,這更像你試圖用你的例子:

var v1sdk = require('./v1sdk'); 

var hostname = "www14.v1host.com"; 
var instance = "v1sdktesting"; 
var username = "api"; 
var password = "api"; 
var port = "443"; 
var protocol = "https"; 

var server = new v1sdk.V1Server(hostname, instance, username, password, port, protocol); 

var v1 = new v1sdk.V1Meta(server); 
+0

注意:您可能還對我們的新版端點感興趣:http://community.versionone.com/Developers/Developer-Library/Recipes/Tour_of_query.v1 – JoshGough