node.js express传递object给ejs(二)

在上一篇中,express要传递一个object给ejs,是自己先把object序列化成json字串,然后传递给ejs,ejs收到手再解析成json元件。

查看资料,说express连function都可以传递给ejs,那表示是在进程内传递的,应该能直接传递json元件,不需要先序列化成json字串。

 

exports.yjUser = function(req, res){  
    var sql = require('msnodesql');  
    var conn_str = "Driver={SQL Server Native Client 11.0};Server={.\\sql2008};Database={erp};uid=sa;PWD=1234;";  
    sql.open(conn_str,   
        function (err, conn)   
        {  
            if (err)   
            {  
                console.log("Error opening the connection!");  
                return;  
            }  
            conn.queryRaw(  
                "SELECT UserOID,UserAID,Name FROM Users",   
                function (err, results)   
                {   
                    if (err)   
                    {   
                        console.log("Error running query!");   
                        res.end(err);  
                        return;   
                    }   
                      
                    try  
                    {  
                        for (var i = 0; i < results.rows.length; i++)   
                        {   
                            console.log("0:" + results.rows[i][0]);   
                        }                     
                        res.render('user.ejs',{data:resuls});      
                    }  
                    catch(e)  
                    {  
                        res.end(e);  
                    }  
                }  
            );  
        }  
    );  
}  

 

在ejs中:

 

<!DOCTYPE html>  
<html>  
    <head>  
        <style type="text/css" title="currentStyle">  
            @import "javascripts/dataTables-1.9.4/media/css/demo_page.css";  
            @import "javascripts/dataTables-1.9.4/media/css/demo_table.css";  
        </style>  
        <script src="javascripts/jquery/jquery-1.10.1.js"></script>  
        <script src="javascripts/dataTables-1.9.4/media/js/jquery.dataTables.js"></script>  
        <script src="javascripts/json/json2.js"></script>  
        <script type="text/javascript">  
            var g_data = null;  
  
            $(document).ready(function() {  
                var g_data=<%- JSON.stringify(locals.data)%>; 
                var o1 = '<%- locals.data %>';  
                var s01 = JSON.stringify(o1); 
                var s02 = '<%- JSON.stringify(locals.data)%>';   
                $('#div_json1').text(s01);  
                $('#div_json2').text(s02);   
  
                $('#dynamic').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');  
                $('#example').dataTable({  
                    "aaData" : g_data.rows,  
                    "aoColumns" : [{  
                        "sTitle" : "UserOID"  
                    }, {  
                        "sTitle" : "用户标识"  
                    }, {  
                        "sTitle" : "用户名",  
                        "sClass" : "center"  
                    }]  
                });  
            });  
        </script>  
  
    </head>  
    <body>          
        <h1>My Name is:</h1>  
        <h1 id="h_name"></h1>  
          
        <div id="div_json1"></div>  
        <br>  
        <div id="div_json2"></div>  
        <br>  
        <div id="div_json3"></div>  
        <div id="dynamic"></div>                      
    </body>  
    <% include foot.ejs %>  
</html>  

这里要注意,s01和s02不相等,s01得到的是[object Object........

s02得到的才是真正的json字串。因为o1的类型是string。

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值