我在模块中有一个用于编写用户配置文件对象的函数。
<select class="form-control" title="Filter by state." (change)="onSelect($event.target.value)">
<option *ngFor="let state of newenglandstates" value="state.abbrv">
{{ state.name }}
</option>
</select>
现在,如果我首先创建该对象,则该函数可以正常工作,但如果我使用相同的函数更新对象,它可以从控制台运行,但不能从REST客户端运行吗?
权限是否存在问题?我试过添加
// create scc user
function createUserProfile(userObj) {
// create user
var uri = fn.concat('/users/',userObj.id,'.json');
var data = {uri : uri, userName : userObj.userName, doc : userObj };
// we add the user as owner of this insert so he/she will own the doc
var options = {"isolation" : "different-transaction"}; //,"userId" :
xdmp.user(userObj.userName)};
xdmp.eval('declareUpdate();
xdmp.documentInsert(uri, doc,[xdmp.permission(userName,"read"),xdmp.permission(userName,"update")]);
xdmp.documentAddCollections(uri,"sccss-users")',
data,options);
return uri
};
在控制台中再次工作,但没有解决我的问题。
实际上,REST客户端没有从端点获得回复,一段时间后数据库超时,请参阅日志。
MarkLogic服务器日志:
var options = {"isolation" : "different-transaction","userId" : xdmp.user(userObj.userName)};
问题: - 权限&#39;阅读&#39;更新&#39;应该在这里使用xdmp.documentInsert()实际更新文档的技巧 - 如果从控制台运行,为什么该功能有效(作为管理员,但如上所述设置了userId。