您的位置:首页 > 移动开发 > Objective-C

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

2014-03-13 20:31 369 查看
在上一篇中,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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: