Javascript 将带有STPointFromText的位置字段添加到azure移动服务中
我有azure移动服务数据库。我试图将数据放入其中,并在服务器端添加位置字段。下面是我正在使用的源代码。问题是服务器响应“内部服务器错误”,我的客户端抛出“MobileServiceInvalidOperationException”,但添加了该数据。若我将request.execute()而不是request.respond()添加到success函数中,那个么它可以正常工作,但会在表中添加我不想要的额外行。如何将数据放入数据库而不出现“内部服务器错误”Javascript 将带有STPointFromText的位置字段添加到azure移动服务中,javascript,azure,server-side,Javascript,Azure,Server Side,我有azure移动服务数据库。我试图将数据放入其中,并在服务器端添加位置字段。下面是我正在使用的源代码。问题是服务器响应“内部服务器错误”,我的客户端抛出“MobileServiceInvalidOperationException”,但添加了该数据。若我将request.execute()而不是request.respond()添加到success函数中,那个么它可以正常工作,但会在表中添加我不想要的额外行。如何将数据放入数据库而不出现“内部服务器错误” 将对STPointFromText()
将对STPointFromText()的调用移到查询字符串之外。比如说,
function insert(item, user, request) {
var location = geography::STPointFromText ....
var queryString = "INSERT INTO mytable (name, city, country, latitude, longitude, location) VALUES (?, ?, ?, ?, ?, ?)";
mssql.query(queryString, [item.name, item.city, item.country, item.latitude, item.longitude, location], {
success: function() {
request.respond();
}
});
}
如果这没有帮助,那么在日志中查找有关错误的其他信息。问题是,当您在客户端使用
InsertAsync
时,它希望您插入的项目和数据库中的新Id得到响应。因此,您必须用适当的响应更新行:
request.respond(statusCodes.CREATED, item);
在InsertAsync之后的客户端,您的项目中有Id:
await actionTable.InsertAsync(action);
var id = item.Id;
没有帮助,只是说“地理”没有定义。任何“是地理::STPointFromText共享代码???移动服务应该如何解决这个问题?您可以将该功能包装到一个服务中,然后只需调用该服务即可添加位置变量。我刚刚添加了一些属性。
await actionTable.InsertAsync(action);
var id = item.Id;