2017-08-16 117 views
0

新記錄按照documentation,新的記錄可以被插入到數據源這樣的:如何從服務器創建腳本

var record = app.models.Person.newRecord(); 
app.saveRecords([record]); 

然而,當我在服務器腳本我試圖做一些事情如簡單:

var item = app.models.ScheduledTournaments.newRecord() 

...我得到這個回報:

TypeError: [object Object] is not a function, it is object. at SharkScope:125 at scheduledTournaments (SharkScope:122)

這樣看來,newRecord根本不是功能。爲什麼?你如何從服務器腳本訪問數據源?

回答

1

how do you access datasources from a server script?

您提供的鏈接指向服務器端API,但服務器上沒有數據源(僅在客戶端存在數據源)。當然,您可以在服務器上創建記錄,但要查看它們,您需要在客戶端重新加載數據源。

So it appears that newRecord is not a function at all.

最明顯的答案將是你試圖調用Sever的端API客戶端(確保你選擇合適的劇本類型創建時)...

如果你真的想創建新客戶端的記錄,那麼你需要去與數據源的創建模式:

// Create a new record for datasource in auto-save mode 
var create = app.datasources.MyDatasource.modes.create; 

create.item.Field1 = 'a'; 
create.item.Field2 = 'b'; 
... 
create.createItem(function(record) { 
    // do stuff 
}); 
+0

對不起,混淆。當我第一次發佈這個問題時,我確實試圖在服務器端使用'app.datasources',因此在問題標題中使用了「datasource」。後來我發現了實際的服務器端API,並試圖使用它,但是失敗了,編輯這個問題來反映這一點。我**不**嘗試在客戶端上使用服務器端API。我在服務器腳本中收到這個錯誤,需要在服務器上創建這些記錄(至少因爲有很多這些記錄,並且數據正在被服務器讀取/處理)。 – Septagram

+0

您何時/何時調用您的服務器端代碼? –

+0

作爲對用戶單擊某個按鈕的響應(目前;稍後將按計劃定期執行),將調用服務器端腳本。該服務器端腳本在其他地方進行了一次安靜的API調用,並且正在處理接收的數據,並且應該將其插入到數據庫中。只有這樣服務器端腳本纔會返回。 – Septagram