JQuery& jade从Nodejs读取渲染数据

时间:2017-04-19 10:54:24

标签: javascript jquery node.js express pug

我使用Jade框架作为Nodejs&的前端。表达后端

因此,当我使用数据呈现视图时,我无法使用JQuery访问这些数据

来自Nodejs的服务,它使用简单的数据= x

呈现视图
router.get('/test',function (req,res,next) {


    res.render('test',{data : 'x'});

});

因此测试页面将显示没有任何问题,我想要做的是使用Jquery方法读取渲染数据

                footer
                .pull-right
                    | Gentelella - Bootstrap Admin Template by
                    a(href='https://colorlib.com') Colorlib
                .clearfix
            // /footer content




    // jQuery
    script(src='/vendors/jquery/dist/jquery.min.js')
        alert(data) // no alert or action happen

但是错误说(数据的未知变量)

而且,我可以从玉本身阅读它

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:1)

尝试使用以下

|<script>
!='alert("'+data+'")'
|</script>

您在jade框架内编写的JavaScript将无法看到您的服务器端node.js变量,因为此客户端JavaScript在浏览器中加载并执行,因此您必须以某种方式从服务器端传递您的变量然后到客户端使用客户端JavaScript获取这些变量。

如果您传递一些字符串,则使用上一种方法更容易。

|<script> - &gt;打开JavaScript代码。

!='alert("'+data+'")' - &gt;正常的jade字符串将在我们的JavaScript标记内,这意味着它应该在jade处理后给我们JavaScript代码,这将生成我们的最终文本alert("x"),因为数据将被其值替换。

|</script> - &gt;关闭JavaScript标记

但是如果你想传递对象,有一些方法可以这样做:

  • 使用AJAX请求。
  • 使用JSON.stringify(data)在服务器端使用div
  • 将您的对象写入隐藏的var data = JSON.parse(jQuery('div').text())和客户端