后端渲染——nodejs

页面渲染

前端渲染
由前端写好静态的html页面 然后通过http的请求获取到数据 将数据更新渲染到页面上
json数据格式

后端渲染
前端写好静态页面 将静态页面交给后端
后端将html部分复制进动态文件中 php jsp asp(模板引擎)
对数据进行查询操作 交换给浏览器端(html)

后端渲染案例:

项目环境目录
在这里插入图片描述

dao/mysqlserver.js——连接数据库的配置

const mysql=require('mysql');

var pool = mysql.createPool({
    connectionLimit: 10, // 最大连接数
    host: 'localhost',//主机名
    user: 'root',//数据库用户名
    password: 'root',//数据库密码
    database: 'users'//数据库名
});

module.exports = pool;

routes/admin.js——配置路由

const express=require('express');

const router=express.Router();

const mysql=require('../dao/mysqlserver');//引入连接数据库的模块 里面写的是连接数据库的配置

//查询数据库 用get方式
router.get('/',(req,res,next)=>{
    mysql.query('select * from users', function (error, results, fields) {
        if (error) throw error;
          // res.render()  渲染模板引擎
          // 第一个参数  模板引擎的路径和名称
          // 第二个参数  渲染模板需要传递的数据
        res.render('admin',{data:results});
    });
});

module.exports=router;

app.js

// 引入路由模块
var adminRouter=require('./routes/admin');
// 使用路由中间件 加载路由
app.use('/admin',adminRouter);

views/admin.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <h1>用户信息表</h1>
    <table class="table table-bordered table-hover">
        <tr>
            <td>user_id</td>
            <td>user_name</td>
            <td>user_password</td>
            <td>user_email</td>
            <td>user_phone</td>
            <td>user_add</td>
        </tr>

        <% for(var i=0;i<data.length;i++){ %>
            <tr>
                <td><%= data[i]['id']%></td>
                <td><%= data[i]['name']%></td>
                <td><%= data[i]['password']%></td>
                <td><%= data[i]['email']%></td>
                <td><%= data[i]['phone']%></td>
                <td><%= data[i]['add']%></td>
            </tr>
        <% } %>
    </table>
</body>
</html>

viwes文件夹里放的就是模块引擎
我们访问localhost:3000/admin 其实访问的就是admin.ejs这个模块引擎
为什么我们能够访问到这个模块引擎呢?
是因为我们有一个路由指引过来的,路由在routes里的admin.js
ejs.js 的意思就是可以在html里写js

效果图:
在这里插入图片描述

另外补充说一下:

express 脚手架 — 搭建项目目录

$ npm install -g express-generator

在需要创建项目的地方 执行命令

$ express 项目名 [模板引擎]

创建项目时 不写模板引擎 默认引擎是jade
express 项目名 -e ejs引擎模块

项目目录结构

  • [bin] 存放执行程序
    • www 服务
  • [public] 存放静态文件
    • [images]
    • [javascripts]
    • [stylesheets]
  • [routers] 存放路由文件
    • index.js
    • users.js
  • [views] 存放视图文件(模板文件)
    • error.jade
    • index.jade
    • layout.jade
  • app.js
  • package.json
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值