我读了很多指南但找不到我需要的东西,所以也许你可以帮助我! :)
我创建了一个UI5应用程序,我在服务器端使用带有Express的Node.js。我从SQL数据库中检索数据并在UI5中显示它。为此,我在服务器端执行以下操作:
request.query(statement, function(err, recordset) {
if(err) {
console.log("SQL error: " + err);
}
app.use('/Scanners', function(req, res) {
res.send(recordset);
});
在客户端,检索此值返回的值:
$.ajax({
url: "/Scanners"
}).done(function(data, status, jqxhr) {
var oModel = new sap.ui.model.json.JSONModel();
var modelData =
"{ \"Number\": " + (totalScanners-(+data[0].Number))+ "}";
oModel.setData(JSON.parse(modelData));
var oTextView = sap.ui.getCore().byId("tvscanner");
oTextView.setModel(oModel);
现在,有一些文本字段,我从中读取值,然后在数据库上执行UPDATE操作。完成后,我想重复第一个操作,如上所示,但路径/Scanners
上的数据不会改变。我怎样才能让这项工作起作用?
感谢您的帮助!
答案 0 :(得分:2)
您应该在请求回调中移动查询,如下所示:
app.use('/Scanners', function(req, res) {
request.query(statement, function(err, recordset) {
if(err) {
console.log("SQL error: " + err);
res.send(JSON.stringify({error: "SQL ERROR: " + err}));
} else {
res.send(recordset);
}
}
});
您可以将发送错误的行替换为其他内容,例如空响应。只记得发回一些东西,否则客户端会等待很长时间,直到请求被取消超时错误。