在Jade文件中使用Ajax返回值

时间:2015-02-22 11:09:09

标签: javascript jquery ajax node.js express

我将ExpressJS与Jade模板引擎一起使用。我正在尝试执行以下操作:

在Jade文件中,我在JavaScript文件中提取了我需要的变量。在这个JavaScript文件中,我向Express服务器发送Ajax请求。这会返回一些数据,我想把这些数据放在另一个变量中,我可以在我的Jade文件中再次使用。

这是我的代码:

玉文件

script.
    var userID = '#{userObject.ID}'; //Extract variable
script(src='/javascripts/account.js') //needed in this file

p
    | #{papersObject} //This should be the result from the Ajax request

Ajax请求:

$(document).ready( function() {

    $.ajax({
        url: '/accountdata',
        /* jshint ignore:start */
        data: {'personId': userID},
        /* jshint ignore:end */
        dataType: 'JSON',
        success: function(data, status, jqXHR) {
            var papersObject = JSON.stringify(data.result);
        }
    });

});

app.js:

var accountData = require('./routes/accountdata');
app.use('/accountdata', accountData);

路线:

var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
    data = //Some database function
    res.send({result: data});
});
module.exports = router;

为什么我的页面上没有显示#{papersObject}?我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

您的服务器端代码和客户端代码在不同的计算机上运行。在发送Ajax请求之前处理Jade模板。

如果要将数据添加到页面,则需要使用DOM操作来执行此操作。

e.g。 with append()