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

来源:互联网 发布:哪个挂号软件好用抢号 编辑:程序博客网 时间:2024/04/30 08:27

在上一篇中,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。



0 0
原创粉丝点击