Express中EJS模板

深碍√TFBOYSˉ_ 2021-12-19 01:45 353阅读 0赞

1.先看一个简单的例子

  1. // index.js文件
  2. var express = require('express');
  3. var router = express.Router();
  4. /* GET home page. */
  5. router.get('/', function(req, res, next) {
  6. res.render('index', { title: 'Express' });
  7. });
  8. module.exports = router;
  9. //index.ejs文件
  10. <!DOCTYPE html>
  11. <html>
  12. <head>
  13. <title><%= title %></title>
  14. <link rel='stylesheet' href='/stylesheets/style.css' />
  15. </head>
  16. <body>
  17. <h1><%= title %></h1>
  18. <p>Welcome to <%= title %></p>
  19. </body>
  20. </html>

上面<%= title %>相当于插入一个变量,这个变量从js文件传入。

参考文章:
https://www.jianshu.com/p/40e0fc8ca371

2.我们再看一个复杂点示例

  1. //data.json
  2. [
  3. {
  4. "name" : "小明",
  5. "url" : "xiaoming"
  6. }
  7. .....
  8. ]
  9. //index.ejs(把包含逻辑的部分用<% %>包括起来)
  10. <ul>
  11. <%for(var i=0;i<student.length;i++){%>
  12. <li> <%= student[i] %></li>
  13. <%}%>
  14. </ul>
  15. <select>
  16. <%for(var i = start; i <= end; i++){%>
  17. <option value="<%= i %>"><%= i %></option>
  18. <%}%>
  19. </select>

更多Express概述可以参考:
https://www.cnblogs.com/rope/p/10726134.html#top

3.更多ejs模板语法

可以参考:
https://www.cnblogs.com/DCL1314/p/7732696.html

再看一个比较复杂的实例:

  1. <tr>
  2. <%for(var i = 0;i<titles.length;i++){%>
  3. <tr>
  4. <td style="text-align:center;vertical-align:middle;"><%=titles[i].id%></td>
  5. <td style="text-align:center;vertical-align:middle;"><%=titles[i].username%></td>
  6. <td style="text-align:center;vertical-align:middle;"><%=titles[i].passwd%></td>
  7. <td style="text-align:center;vertical-align:middle;"><%=titles[i].email%></td>
  8. <td style="text-align:center;vertical-align:middle;"><%=titles[i].phonenum%></td>
  9. <td style="text-align:center;vertical-align:middle;"><%=titles[i].sex%></td>
  10. <td style="text-align: center;vertical-align: middle"><%=moment(titles[i].regDate).format('YYYY-MM-DD')%></td>
  11. <td style="text-align: center;vertical-align: middle"><%=titles[i].isRole%></td>
  12. <td style="text-align: center;vertical-align: middle">
  13. <a href="/root-content/root-state?id=<%=titles[i].id%>&role=<%=titles[i].isRole%>"><%= Number(titles[i].isRole)? "冻结":"解冻" %></a>
  14. </td>
  15. <td style="text-align:center;vertical-align:middle;">
  16. <!--路由请求,请求参数是?id= -->
  17. <a href="/root-content/del?id=<%=titles[i].id%>" >删除</a>
  18. <!--<a href="#"><%= typeof titles[i].isRole %></a>-->
  19. <!--<button onclick="del(<%=titles[i].id%>)">点击</button>-->
  20. </td>
  21. </tr>
  22. <%}%>
  23. </tr>
  24. //用户状态(解封/冻结)
  25. router.get('/root-state',function (req,res,next) {
  26. var uid = req.query.id;
  27. var role = req.query.role;
  28. console.log(uid);
  29. console.log(role);
  30. console.log(typeof role);
  31. var connection = mysql.createConnection({ //创建mysql实例
  32. host:'127.0.0.1',
  33. port:'3306',
  34. user:'root',
  35. password:'',
  36. database:'test'
  37. });
  38. connection.connect();
  39. if(role === '1'){
  40. var sql = "update users set isRole = 0 where id = " + uid;
  41. connection.query(sql,function (err,result) {
  42. if(err){
  43. console.log('[SELECT ERROR]:',err.message);
  44. }
  45. //重定向,页面就刷新了,数据重新显示
  46. res.redirect('/root-content');
  47. })
  48. connection.end();
  49. }else {
  50. var sql = "update users set isRole = 1 where id = " + uid;
  51. connection.query(sql,function (err,result) {
  52. if(err){
  53. console.log('[SELECT ERROR]:',err.message);
  54. }
  55. //重定向,页面就刷新了,数据重新显示
  56. res.redirect('/root-content');
  57. })
  58. connection.end();
  59. }
  60. })

发表评论

表情:
评论列表 (有 0 条评论,353人围观)

还没有评论,来说两句吧...

相关阅读

    相关 expressejs

    Express Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。