1、网站

  https://ejs.co/

  https://ejs.bootcss.com/

2、app.js

var http=require("http");
var ejs = require('ejs');
var path = require('path'); http.createServer(function(req, res){ if (req.url === '/index') {
res.writeHead(200,{
"content-type":"text/html;charset=utf-8"
}) var people = ['geddy', 'neil', 'alex'];
var html = ejs.render('<h2 style="color:red"><%= people.join(", "); %></h2>', {people: people}); res.write(html);
res.end()
} if (req.url === '/detail') {
res.writeHead(200,{
"content-type":"text/html;charset=utf-8"
}) var book = {id: 1, name: '小明', price: 10.00};
ejs.renderFile(path.join(__dirname, 'pages', 'detail.html'), {book: book}, function(err, str) {
res.write(str);
res.end()
}); }     if (req.url === '/list') {
        res.writeHead(200,{
            "content-type":"text/html;charset=utf-8"
        })
        
     // 注意 bookList 的格式 "id" "name"的双引号不能省
        var bookList = [{"id": 1, "name": "java编程思想", "price": 10.00},{"id": 2, "name": "springboot", "price": 20.00}];
        ejs.renderFile(path.join(__dirname, 'pages', 'list.html'), {bookList: bookList}, function(err, str) {
            res.write(str);
            res.end()
        });
    } }).listen('3000', function() {
console.log('服务器已经启动,请访问http://127.0.0.1:3000/');
});

  pages/detail.html

<!DOCTYPE html>
<html>
<head>
<title>detail页面</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/static/css/common.css">
</head>
<body>
<h2>detail页面</h2>
<form method="post" action="/edit">
<input type="hidden" name="id" value="<%= book.id %>">
书名:<input type="text" name="name" value="<%= book.name %>"><br/>
价格:<input type="text" name="price" value="<%= book.price %>"><br/>
<input type="submit" value="修改">
</form>
</body>
</html>

  pages/list.html

<!DOCTYPE html>
<html>
<head>
<title>list页面</title>
<meta charset="utf-8">
</head>
<body>
<h2>list页面</h2>
<ul>
<% for(var i = 0; i < bookList.length; i++) { %>
<li><%= bookList[i].name %></li>
<% } %>
</ul>
</body>
</html>

模板引擎ejs的更多相关文章

  1. 后台模板引擎ejs与前台模板引擎artTemplate的简单介绍

    动态网页是指前端页面当中的数据内容来源于后台数据库,前端的html代码会随着后台数据的变化而变化,是动态生成的.制作动态网页有两种方式,一种方式是在后台拿到前端的html模板,利用后台模板引擎(如ej ...

  2. 模板引擎ejs入门学习

    1:利用 NPM 安装 EJS 很简单 npm install ejs 2:安装完成肯定就是使用了 var template = ejs.compile(str, options); template ...

  3. 模板引擎ejs详解

    singsingasong.js: const ejs=require('ejs'); ejs.renderFile('./views/singsingasong.ejs', {'name':'sin ...

  4. nodejs 模板引擎ejs的使用

    1.test.ejs文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  5. 模板引擎ejs的include方法

    html无法include header.ejs footer.ejs 最后用 user.ejs在首尾include

  6. nodejs 模板引擎ejs的简单使用

    ejs1.js /** * Created by ZXW on 2017/11/9. */ var ejs=require('ejs'); ejs.renderFile("},functio ...

  7. nodejs 模板引擎ejs的简单使用(3)

    1.ejs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...

  8. nodejs 模板引擎ejs的简单使用(2)

    test.ejs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  9. nodeJs学习-10 模板引擎 ejs语法案例

    ejs语法案例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

随机推荐

  1. ubuntu18.04安装Vulhub

    环境 虚拟机vmware ubuntu18.04 已安装docker 1.安装docker-compose 前提:Docker-compose基于Python开发,需要pip Docker-compo ...

  2. bat默认以管理员身份运行

    在Bat文件内容前插入以下一段代码: @echo off :: BatchGotAdmin :------------------------------------- REM --> Chec ...

  3. MSF魔鬼训练营第一章 初识Metasploit

    1.1.4渗透测试过程环节 PTES标准7个阶段 1.前期交互阶段      收集客户需求.准备测试计划.定义测试范围与边界.定义业务目标.项目管理与规划等 2.情报搜集阶段      公开来源信息查 ...

  4. Cause: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.

    Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org ...

  5. Go语言代码结构与语法基础(二)

    任何一门语言,都是从打印 hello world 开始的. 最简单的go代码: package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" ...

  6. 非关系型数据库MongoDB初级使用教程

    安装:官网 安装难度不大,依序即可 1.新建存储文件    完成后,打开MongoDBx下载路径,新建名为data的文件夹,在此新建名为db的文件夹,db文件夹即用于存储数据 2.配置文件    在b ...

  7. [LeetCode] 矩形面积

    题目链接: https://leetcode-cn.com/problems/rectangle-area 难度:中等 通过率:41.3% 题目描述: 在 二维 平面上计算出两个 由直线构成的 矩形重 ...

  8. Codeforces 1209E2. Rotate Columns (hard version)

    传送门 发现 $n$ 很小,考虑状压 $dp$,但是如果强行枚举列并枚举置换再转移复杂度太高了 考虑推推结论,发现我们只要保留列最大值最大的 $n$ 列即可,证明好像挺显然: 假设我们让列最大值比较小 ...

  9. 剑指offer-字符串的排列-数组-递归-动态规划-python

    题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...

  10. redis常见问题和解决方案

    转载:https://www.cnblogs.com/aspirant/p/6820262.html [原创]那些年用过的Redis集群架构(含面试解析) redis常见问题和解决方案 持久化.主从问 ...