如何从服务器创建脚本
问题描述:
新记录按照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
根本不是功能。为什么?你如何从服务器脚本访问数据源?
答
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
});
对不起,混淆。当我第一次发布这个问题时,我确实试图在服务器端使用'app.datasources',因此在问题标题中使用了“datasource”。后来我发现了实际的服务器端API,并试图使用它,但是失败了,编辑这个问题来反映这一点。我**不**尝试在客户端上使用服务器端API。我在服务器脚本中收到这个错误,需要在服务器上创建这些记录(至少因为有很多这些记录,并且数据正在被服务器读取/处理)。 – Septagram
您何时/何时调用您的服务器端代码? –
作为对用户单击某个按钮的响应(目前;稍后将按计划定期执行),将调用服务器端脚本。该服务器端脚本在其他地方进行了一次安静的API调用,并且正在处理接收的数据,并且应该将其插入到数据库中。只有这样服务器端脚本才会返回。 – Septagram