具有Express的Node.js:更改特定路径的响应数据

时间:2015-08-24 09:37:04

标签: javascript node.js express sapui5

我读了很多指南但找不到我需要的东西,所以也许你可以帮助我! :)

我创建了一个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上的数据不会改变。我怎样才能让这项工作起作用?

感谢您的帮助!

1 个答案:

答案 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);
        }
    }
});

您可以将发送错误的行替换为其他内容,例如空响应。只记得发回一些东西,否则客户端会等待很长时间,直到请求被取消超时错误。