node.js 实战——餐厅静态主页编写(express+node+ejs+bootstrap)

ejs页面

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css'/>
    <link rel='stylesheet' href='/stylesheets/font-awesome.css'/>
    <link rel='stylesheet' href='/stylesheets/fontello.css'/>
    <!-- 本地 Bootstrap 引入方式 -->
    <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
</head>
<body>
<div class="top-header">
    <div class="container">
        <div class="row">
            <div class="col-lg-6">

            </div>
            <div class="col-lg-6">
                <div class="top-text">
                    <div class="text-block ">
                        <i class="icon-phone-call"></i>
                        <span>400-800-123-456</span>
                    </div>

                    <div class="text-block ">
                        <i class="bi bi-clock"></i>
                        <span>Mo-Fr 11:00-10:00, Sa-Su 10:00-11:00</span>

                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="header">
    <div class="container">
        <div class="row">
            <div class="col-lg-5">
                <div class="logo">
                    <img src="./images/logo.png" alt="logo"></img>
                </div>
            </div>
            <div class="col-lg-7 navigation ">

                <div class="content">
                    <div class="col-lg-2 menu">主页</div>
                    <div class="col-lg-2 menu">菜单</div>
                    <div class="col-lg-3 menu">
                        <span>预约</span>
                        <div class="menu-item">
                            <div class="title">
                                预约须知
                            </div>
                            <div class="title">
                                直接预约
                            </div>
                        </div>
                    </div>
                    <div class=" col-lg-3 menu">餐厅趣事</div>
                    <div class="col-lg-4 menu">注册/登陆</div>
                </div>


            </div>
        </div>
    </div>
</div>
<div class="hero-section" style=" background: url('<%=banner.img%>') no-repeat center right;">
    <div class="">
        <div class="container">
            <div class="row">
                <div class="col-lg-5">
                    <div class="hero-caption">
                        <h1 class="hero-title"><%=banner.displayName%></h1>
                        <p class="hero-text"><%=banner.displayTitle%></p>

                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="space-medium">
    <div class="container">

        <div class="row">

            <div class="col-lg-12">
                <div class="section-title">
                   <h1> 🧑‍🍳今日主厨</h1>
                </div>
            </div>

            <div class="chef-section">
                <div class="row">
                    <div class="col-lg-2">
                        <div class="author-img mb40">
                            <img src="./images/author.jpg" alt="author"></img>
                        </div>

                    </div>
                    <div class="col-lg-9">
                        <div class="author-info">
                            <div class="author-name ">
                                Sarah Perkins
                            </div>
                            <div class="author-mete mb40">
                                助理主厨
                            </div>
                            <div class="author-content mb40">
                                Etiam posuere dictum liquam mollis sem atex venenatis mauris ultrices rmentum justoed porttitorsed mollis posuere dictum.
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="space-medium bg-default">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <div class="section-title text-center">
                    <h1 class="">明星菜单</h1>
                    <h5>主厨推荐 & 食客热评</h5>
                </div>
            </div>

            <div class="col-lg-4">
                <div class="food-block mb40">
                    <div class="food-img">
                        <div class="img-hover">
                            <img src="./images/service-1.jpg" ></img>
                        </div>

                    </div>
                    <div class="food-title">
                        剁椒鱼头手工豆腐煲
                    </div>
                </div>
            </div>
            <div class="col-lg-4">
                <div class="food-block mb40">
                    <div class="food-img">
                        <div class="img-hover">
                            <img src="./images/service-4.jpg" ></img>
                        </div>

                    </div>
                    <div class="food-title">
                        剁椒鱼头手工豆腐煲
                    </div>
                </div>
            </div>
            <div class="col-lg-4">
                <div class="food-block mb40">
                    <div class="food-img">
                        <div class="img-hover">
                            <img src="./images/service-3.jpg" ></img>
                        </div>

                    </div>
                    <div class="food-title">
                        剁椒鱼头手工豆腐煲
                    </div>
                </div>
            </div>
            <div class="col-lg-4">
                <div class="food-block mb40">
                    <div class="food-img">
                        <div class="img-hover">
                            <img src="./images/service-2.jpg" ></img>
                        </div>

                    </div>
                    <div class="food-title">
                        剁椒鱼头手工豆腐煲
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<div class="space-medium ">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <div class="section-title text-center">
                    <h1 class="">食客评价</h1>
                    <h5>喜爱上我们餐厅的客人常说</h5>
                </div>
            </div>
            <div class="col-lg-12">
                <div class="comment-area">
                    <div class="comment-people">
                        <div class="comment-author">
                            <img src="./images/user1.jpg" alt="avatar" class="img-circle"/>
                        </div>
                    </div>
                    <div class="comment-content">
                        <div class="time">2023-12-12</div>
                        <div class="content">
                            Lorem ipsum dolor sit ameonsectetur adipiscing elitlentesque ut dui leonean commo lorem porttitor hendrerit orem ipsum dolor siectetur adipiscing elit.
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-lg-12">
                <div class="comment-area">

                    <div class="comment-content">
                        <div class="time">2023-12-12</div>
                        <div class="content">
                            Lorem ipsum dolor sit ameonsectetur adipiscing elitlentesque ut dui leonean commo lorem porttitor hendrerit orem ipsum dolor siectetur adipiscing elit.
                        </div>
                    </div>
                    <div class="comment-people">
                        <div class="comment-author">
                            <img src="./images/user2.jpg" alt="avatar" class="img-circle"/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>


</body>
</html>

js 页面

javascript 复制代码
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  let banner ={
    img: '../images/hero-img.jpg',
    displayName:'📢  芝士流心咸蛋黄虾球!',
    displayTitle:'今日厨师推荐'
  }


  res.render('index', { title: '订餐系统', banner });
});

module.exports = router;

效果图



相关推荐
濮水大叔21 分钟前
NestJS Dynamic Providers 与 Cabloy/Vona Provider Scene:同接口多实现的两种装配哲学
typescript·node.js·nestjs
凤山老林3 小时前
Spring Boot 集成 Sa-Token 实现高可用权限认证:登录鉴权、动态路由权限与接口防重放实战
spring boot·后端·sa-token·bootstrap
Wx-bishekaifayuan4 小时前
springboot桂味美食分享系统40540-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
silvamux_8 小时前
Node.js 调用大模型 API 排错实录
node.js
Amumu1213811 小时前
NodeJs介绍
前端·node.js
孟陬12 小时前
利用 TypeScript `asserts` function 语法定制一个类型缩窄的 `assertIncludes`
typescript·node.js
damoluomu12 小时前
静态站点生成器怎么选:Node.js 生态里常用的五个(番外一)
javascript·css·typescript·node.js·html
濮水大叔13 小时前
Cabloy/Vona 如何避开 NestJS 的循环依赖问题:懒属性注入机制源码解析
typescript·node.js·nestjs
月走乂山19 小时前
DSH 桌面版用 DeepSeek 报 REQUEST_EXTENSION 的根因定位与修复
electron·node.js·插件系统·deepseek·bug排查·dsh·deepseek harness
斯晨的AI笔记1 天前
在服务器上跑 npm ci 四十分钟没装完,我打包把 node_modules 扔了过去
服务器·node.js