当前位置: 首页 > news >正文

Node.js-EJS模板

EJS是一个JavaScript模版库,用来将EJS模版结合着JSON数据转换为HTML 并且可以直接在模版中写JavaScript的语法

安装ejs包

//控制台输入
npm i ejs

简单示例

let template = '<h1>Hello, <%= name %></h1>'
let data = {name: 'World'
}let renderStr = ejs.render(template, data)console.log(renderStr) // => <h1>Hello, World</h1>

EJS模版主要还是HTML标签,仅仅添加了几对特定的标签(<% %>, <%= %>, <%- %>, <% -%>, <%# %>)。

标签含义

  • <% ‘脚本’ 标签,用于流程控制,无输出。

  • <%_ 删除其前面的空格符

  • <%= 输出数据到模板(输出是转义 HTML 标签)

  • <%- 输出非转义的数据到模板

  • <%# 注释标签,不执行、不输出内容

  • <%% 输出字符串 ‘<%’

  • %> 一般结束标签

  • -%> 删除紧随其后的换行符

  • _%> 将结束标签后面的空格符删除

ejs写网页

hello.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title><%= title%></title></head><body><%- content %></body>
</html>

myserver.js

// npm下载ejs
// npm i ejs
// 引入模块
const http = require("http");
const fs = require("fs");
const ejs = require("ejs");
// => 输出渲染后的 HTML 字符串
var template = fs.readFileSync(__dirname + "\\hello.ejs", "utf-8");const server = http.createServer((req, res) => {// => 输出渲染后的 HTML 字符串var data = ejs.render(template, {title: "hello ejs",content: "<strong>big hello ejs</strong>",});res.setHeader("Content-Type", "text/html");res.statusCode = 200;res.end(data);
});
const hostname = "127.0.0.1";
const port = 4000;
server.listen(port, hostname, () => {console.log(`Server running is http://${hostname}:${port}/`);
});

留言板实战

留言板.ejs

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>留言板</title></head><body><form action="" method="post"><input type="text" name="content" id="content" /><input type="submit" value="提交" /><ul><% for(var i =0;i < posts.length; i++){ %><li><%= posts[i] %></li><% } %></ul></form></body>
</html>

留言板.js

// 引入模板
const http = require("http");
const fs = require("fs");
const ejs = require("ejs");
const qs = require("querystring");const template = fs.readFileSync(__dirname + "\\留言板.ejs", "utf-8");
var posts = [];const server = http.createServer((req, res) => {if (req.method === "POST") {// 表单提交req.data = "";req.on("readable", function () {// 表单数据搜集var chr = req.read();if (chr) req.data += chr;});req.on("end", function () {//表单处理var query = qs.parse(req.data);posts.push(query.content);showForm(posts, res);});} else {//   表单显示showForm(posts, res);}
});
const hostname = "127.0.0.1";
const port = 3000;
server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
});function showForm(p_posts, res) {var data = ejs.render(template, {title: "helo ejs",posts: p_posts,});res.setHeader("Content-Type", "text/html");res.statusCode = 200;res.end(data);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35082.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Windows没有MySQL服务及MySQL无法启动解决办法

下载MySQL并把MySQL的路径配置到系统环境后执行命令&#xff1a;mysql -u root -p 报错&#xff1a;ERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061) 猜测原因可能是windows没有mysql服务或mysql服务没有启动&#xff0c;这篇文章主要讲windows没有my…...

C# 打包windows服务安装包后,安装后自动启动服务

在服务的安装程序&#xff0c;通常是ProjectInstaller&#xff0c;重写他的Commit方法 public override void Commit(IDictionary savedState){base.Commit(savedState);ServiceController sc new ServiceController("你的服务名称");if (sc.Status.Equals(Service…...

MATLAB 数学应用 微分方程 时滞微分方程 ddesd

求解带有常规时滞的时滞微分方程 (DDE) 语法 sol ddesd(ddefun,delays,history,tspan) sol ddesd(ddefun,delays,history,tspan,options) 参数 参数说明ddefun用于对微分方程 y′(t) f(t,y(t),y(d(1),…,y(d(k))) 的右侧进行计算的函数句柄。此函数必须为以下形式&#…...

Java 从多线程到并发编程(七)—— wait notify 生产者消费者问题 管程法 信号灯法

文章目录前言 &#xff65;ᴗ&#xff65;wait 与 notifynotify 和 notifyAll深入了解 阻塞线程的状态切换生产者消费者模型wait notify深入一点管程法管程法 仓库管程法 生产者管程法 消费者管程法 main调用管程法结果if还是while信号灯法总结 ◡前言 &#xff65;ᴗ&#xff…...

雨课堂期末考试答案----查了好多份答案,一道一道的进行查找正确答案,基本可以保证是正确答案

1.主观题 (10分) 工程为何总是伴随着风险?导致工程风险的因素有哪些? 2.判断题 (1分) 目前对水利工程价值的伦理判断基本是遵循功利主义原则。()对 3.单选题 (1分) 下列哪一项不属于工程实践全球性特征?( )C A 生态性 B 深远性 C 社会性 D 整体性 4.单选题 (1分) …...

阿里面试官力荐:Java面试必刷的17套一线大厂真题(含答案)

金三银四过去之后&#xff0c;回顾好多同学的面试经历&#xff0c;总结出了这份大厂面试真题的合集&#xff08;含答案&#xff09;&#xff0c;里面包含了Java中级到Java架构师的方方面面&#xff0c;其中大厂也包含了阿里巴巴&#xff0c;京东&#xff0c;百度&#xff0c;拼…...

Vue系列3——Vue计算属性、监视属性和生命周期

点赞多大胆&#xff0c;就有多大产&#xff01;开源促使进步&#xff0c;献给每一位技术使用者和爱好者&#xff01; 干货满满&#xff0c;摆好姿势&#xff0c;点赞发车 路漫漫其修远兮&#xff0c;吾将上下而求索 前言 本章节咱们来说一下Vue中两个非常重要的计算属性、监视…...

offer来了读书笔记-数据库三范式

面试中被问到了数据库三范式&#xff0c;只知道范式是数据库的设计规范&#xff0c;但是具体文档化的内容一下子却想不起来了&#xff0c;回顾平时的数据库表设计&#xff0c;其实也没有特别遵守范式&#xff0c;一切都是以方便开发为第一要素&#xff0c;这里对数据库的几个范…...

Linux 之 RAID 磁盘阵列

目录一、RAID磁盘阵列1.1 RAID磁盘阵列介绍1.2 常用的RAID级别1.2.1 RAID 0&#xff08;条带化存储&#xff09;1.2.2 RAID 1 (镜像存储)1.2.3 RAID5 磁盘列阵1.2.3 RAID6 磁盘列阵1.2.4 RAID 10&#xff08;先做镜像&#xff0c;再做条带&#xff09;1.2.5 RAID 01&#xff08…...

用 Python 进行 OCR 图像识别

数据采集就怕遇到图片,只能看不能复制怎么办。手动将文字提取出来,要耗费很大的工作量。 例如下图,某楼盘的一房一价表,怎么样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机进行文字的识别,然后再对这些数值型信息进行数据分析? 首先把图片中的单价提取出来, …...

(更新时间)2021年6月3日 商城高并发秒杀系统(.NET Core版) 24-性能优化-nginx负载均衡优化

一、关于Nginx的负载均衡 在服务器集群中&#xff0c;Nginx起到一个代理服务器的角色&#xff08;即反向代理&#xff09;&#xff0c;为了避免单独一个服务器压力过大&#xff0c;将来自用户的请求转发给不同的服务器。 二、Nginx负载均衡策略 负载均衡用于从“upstream”模…...

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错&#xff1f; 我仔细一看&#xff1a;是用来爬取某个网站妹子图的代码&#xff0c;结果发现那个网站已经404了&#xff0c;当然爬不到了。 其实很多初学者都喜欢拿网上的案例作为练习&#xff0c;但是我们的爬虫可能会对一些…...

CentOS8安装activeMQ

Active简介 ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件&#xff1b;由于ActiveMQ是一个纯Java程序&#xff0c;因此只需要操作系统支持Java虚拟机&#xff0c;ActiveMQ便可执行。 它解决了下面的问题&#xff1a; 做到系统解耦&#xff0c;当新的模块接进来时&am…...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件

预期效果&#xff1a;前后台联动&#xff0c;即点击“导出Excel”按钮后弹出下载框 导出效果&#xff1a; 1. 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version>…...

优质ip代理怎么使用?

目前&#xff0c;大家上网越来越依赖于代理IP&#xff0c;代理IP的应用范畴正在逐步扩展。对于因特网这个巨大的网站空间&#xff0c;大家一样期待着这其中的标准和实际中的一样&#xff0c;因此也期待着自己的个人信息能在互联网上得到最大的利益维护。但是事实上由于互联网是…...

windows下python3.5+安装scrapy与创建项目

scrapy框架的安装与创建项目 scrapy安装&#xff1a; 相信第一次安装scrapy框架都会遇到各种安装不上的问题&#xff01;哈哈&#xff0c;别问我为啥知道&#xff01; 那我分享下我是如何安装scrapy框架的。 首先安装scrapy框架之前需要先安装几个依赖的库 依照顺序分别是 z…...

docker搭建LDAP统一用户认证

1. 安装LDAP docker run -dit \ -p 389:389 \ -v /data/ldap/ldap:/var/lib/ldap \ -v /data/ldap/slapd.d:/etc/ldap/slapd.d \ --name ldap \ --env LDAP_TLSfalse \ --env LDAP_ORGANISATION"pibigstar" \ --env LDAP_DOMAIN"pibigstar.com" \ --env LD…...

python数据分析——如何用python连接远程数据库

本文将以SQLite、MySQL&#xff0c;PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作。 SQLite SQLite可能是与Python连接的最方便的数据库&#xff0c;因为我们不需要安装任何外部Python SQL模块即可使用。默认情况下&#xff0c;Python会自带一个名为sqlite…...

在 IntelliJ IDEA 中为自己设计的类库生成 JavaDoc

因为某个项目需要&#xff0c;为团队其他兄弟姐妹开发了一个 XML 分析处理器&#xff0c;并将其设计为一个类库&#xff0c;提供相应的 API 接口。为了方便大家的使用&#xff0c;需要生成对应的 JavaDoc 帮助文档&#xff0c;就像 JavaSE 标准库提供的 JavaDoc 那样。我的开发…...

python数据分析——如何用python连接远程数据库

本文将以SQLite、MySQL&#xff0c;PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作。 SQLite SQLite可能是与Python连接的最方便的数据库&#xff0c;因为我们不需要安装任何外部Python SQL模块即可使用。默认情况下&#xff0c;Python会自带一个名为sqlite…...

一本通1034:计算三角形面积

1034&#xff1a;计算三角形面积 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 72178 通过数: 23831 【题目描述】 平面上有一个三角形&#xff0c;它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3) &#xff0c;那么请问这个三角形的面积是多少&#xff0c;精确…...

error C249: ‘DATA‘: SEGMENT TOO LARGE

今天碰到这个问题&#xff0c;浪费挺长时间的&#xff0c;做个笔记提供一种解决方法&#xff1a;error C249: ‘DATA’: SEGMENT TOO LARGE 编译的时候出现这个错误 需要将【魔术棒】中【Target】项中【Memory Model】&#xff0c;由small&#xff1a;xxxx改成Large&#xff1…...

活动目录备份和灾难恢复之自动备份与授权还原

前言 由于服务器系统状态总在变化&#xff0c;因该增加对系统状态备份的频率&#xff0c;来减少备份对服务器工作环境的影响&#xff0c;所以最好是每天晚上对服务器系统状态进行备份&#xff0c;但是单独使用wbadmin命令无法创建系统状态的自动备份计划&#xff0c;此时可以使…...

【Jenkins插件】之Multiple SCMs

在Jenkins配置中&#xff0c;有的时候我们需要依次拉取多个代码仓库&#xff0c;有时候还会需要既拉取svn代码库&#xff0c;又拉取git代码库&#xff0c;但Jenkins默认的配置是不支持这样操作的。因此&#xff0c;我们需要使用到Jenkins的Multiple SCMs插件。 Multiple SCMs这…...

Jmeter工具使用-分布式架构和服务器性能监控解决方案

Jmeter工具使用-分布式架构和服务器性能监控解决方案参考文章&#xff1a; &#xff08;1&#xff09;Jmeter工具使用-分布式架构和服务器性能监控解决方案 &#xff08;2&#xff09;https://www.cnblogs.com/zhengshuheng/p/6600215.html 备忘一下。...

【pandas】根据其他表格列数据更新相应的列字段,apply()操作实例

今天在学习中&#xff0c;遇到一个小问题&#xff0c;需要把主表中的出行网格id&#xff0c;和终点网格id替换成对应的枢纽地点&#xff0c;从表中有每个枢纽对应的id&#xff08;一个枢纽对应多个网格id&#xff09; 1.原始数据如下图 上面是枢纽id,下方是出行信息 2.将数…...

Windows没有MySQL服务及MySQL无法启动解决办法

下载MySQL并把MySQL的路径配置到系统环境后执行命令&#xff1a;mysql -u root -p 报错&#xff1a;ERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061) 猜测原因可能是windows没有mysql服务或mysql服务没有启动&#xff0c;这篇文章主要讲windows没有my…...

攻防世界XCTF-WEB入门全通关

为了更好的体验&#xff0c;请见我的---->个人博客 XCTF的web块入门区非常简单&#xff0c;适合一些刚解除安全或者对网络安全常识比较了解的同学在安全搞累之余娱乐娱乐。 其主要考察下面几点&#xff1a; 基本的PHP、Python、JS语法基本的代理BurpSuite使用基本的HTTP请…...

C# RedisHelper

public class RedisHelper{/// <summary>/// redis连接字符串/// </summary>private static readonly string RedisConnString ConfigurationManager.AppSettings["RedisConn"];private static readonly string RedisKey ConfigurationManager.AppSett…...

如何选择DNS的TTL值,设置多少才合适 ?

知名网络安全专家&#xff0c;东方联盟创始人郭盛华透露&#xff1a;“关于如何为域名选择DNS生存时间&#xff08;TTL&#xff09;&#xff0c;TTL非常重要&#xff0c;因为它们间接控制解析器缓存记录的时间&#xff0c;直接影响用户体验” 。 在东方联盟DNS实验室和USC / IS…...

通过Java程序调用HBase shell修改表TTL值

项目中HBase在建表时设置了表中数据的超时时间(TTL值)&#xff0c;这个超时时间是从项目配置文件中获取的。之后客户反馈说这个超时时间的配置可能会经常变动&#xff0c;当服务检测到该值有变动时自动去修改HBase中该表的TTL值。项目语言用的是Java&#xff0c;找了一圈发现Ja…...

如何修改LINUX的TTL值

网络黑客如果用ping命令去探测 一个主机&#xff0c;根据TTL基数可以推测操作系统的类型。对于一个没有经过任何网关和路由的网络&#xff0c;直接ping对方系统得到的TTL值&#xff0c;被叫做“TTL基数”。网络中&#xff0c;数据包每经过一个路由器&#xff0c;TTL就会减1&am…...

Windows服务器修改默认TTL值的方法

不同的操作系统&#xff0c;它的TTL值是不相同的&#xff0c;默认情况下&#xff0c;Linux系统的TTL值为64或255&#xff0c;Windows NT/2000/XP系统的TTL值为128&#xff0c;Windows 98系统的TTL值为32&#xff0c;UNIX主机的TTL值为255。笔者单位使用的是Windows 2000服务器&…...

DNS的TTL值

DNS TTL值 DNS会将最终域名解析的结果缓存至本地DNS服务器。那么当域名对应的解析IP变化时&#xff0c;如何保证用户的缓存快速过期&#xff1f; 这就涉及到一个问题&#xff0c;域名在解析时设置的DNS缓存过期时间是多少——TTL(Time-To-Live)。 TTL(Time-To-Live)&#xff0c…...

中科三方:DNS解析如何设置合适的TTL值?

TTL值是DNS解析环节中一个重要的参数&#xff0c;其大小直接影响解析过程的准确性和稳定性&#xff0c;因此在进行DNS解析配置的工作中设置合理的TTL值至关重要。 什么是TTL值&#xff1f; TTL&#xff08;Time-To-Live&#xff0c;生存时间&#xff09;&#xff0c;简单地说…...

ttl一会255一会64_什么ping ip地址返回的ttl值会自己变,一会是255,一会是64 使用ping命令 以前T...

网络流量大内网抓下包看看哪几台机器的流量大重点排查一下TTL表示跳数 也就是没经过一个路由器 计数增加1 比如你PING 百度的话 TTL64 那么从你家的路由器算起 到达腾讯的服务器要经过64个路由器先给你说下: TTL&#xff1a;生存时间指定数据报被路由器丢弃之前允许通过的网段数…...

如何修改服务器ttl值,TTL值怎么改(TTL值最大值和默认值是多少)

关于什么是TTL值在前面学无忧已经有所讲解&#xff0c;在里面也涉及到TTL值的大小跟网站访问打开的时间是有关。那么我们在设置ttl值的时候需要设置多大的值才是最友好&#xff1f;这里就牵扯到了TTL怎么改的问题&#xff0c;而今天学无忧就来谈谈TTL的初始默认值是多少&#x…...

ttl值设置多少才合适

之前&#xff0c;公司用户的手机app用户出现了手机无法联网&#xff0c;移动、联通、电信。就是因为ttl值设置的问题。 服务器 阿里云 centos 6.5 我们在解析域名时经常出现 TTL 这个字段&#xff0c;里面默认写的是10分钟。另外&#xff0c;有时候我们PING某域名或IP的时候&a…...

域名解析TTL是什么意思 TTL值设置为多少合适?

域名解析TTL是什么意思&#xff1f;TTL是域名解析的生命周期&#xff0c;简单的说它表示DNS记录在DNS服务器上的缓存时间。ttl值大好还是小好&#xff1f;ttl值越大越好吗&#xff1f;这里亿恩科技为大家介绍下TTL值设置多少合适。可以去站长之家使用DNS查询。 TTL是什么意思&…...

TTL值的含义以及与域名DNS TTL值的区别

什么是TTL&#xff1f; TTL是IP协议包中的一个值&#xff0c;指定数据报被路由器丢弃之前允许通过的网段数量。 在很多情况下数据包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包&#xff0c;然后给发送者一个报文&#xff0c;由发送者决定是否要重发。…...

L2TP详情

L2TP详情【转载】 2018年05月25日 11:58:03 莺声门径 阅读数&#xff1a;54收起 个人分类&#xff1a; 网络运维 1.L2TP简介 L2TP&#xff08;Layer 2 Tunneling Protocol&#xff0c;二层隧道协议&#xff09;是VPDN&#xff08;Virtual PrivateDial-up Network&#xff0c…...

开源代码实现pppoe over l2tp方案

PPPoE L2TP 实现方案 需求描述 有些运营商有路由器需要支持L2TP拨号功能&#xff0c;同时对终端用户支持PPPoE拨号功能。依据L2TP的隧道建立方式&#xff0c;分为单隧道工作模式和多隧道工作模式&#xff0c;目前的实现方案仅讨论单隧道工作模式&#xff0c;即一台路由器创建一…...

PyTorch深度学习笔记之五(使用神经网络拟合数据)

使用神经网络拟合数据 1. 人工神经网络 1.1 神经网络和神经元 神经网络&#xff1a;一种通过简单函数的组合来表示复杂函数的数学实体。 人工神经网络和生理神经网络似乎都使用模糊相似的数学策略来逼近复杂的函数&#xff0c;因为这类策略非常有效。 这些复杂函数的基本构…...

L2TP实验

一、 L2TP简述 1.1 角色 L2TP的角色分为两种&#xff0c;LAC(访问集中器)和LNS&#xff08;L2TP网络服务器&#xff09;。L2TP提供了PPP链路层数据帧的隧道传输支持&#xff0c;且允许二层链路端点和PPP会话点驻留在不同的设备上&#xff08;即隧道建立在LAC和LNS设备上&…...

L2TP详解

1.L2TP简介 L2TP&#xff08;Layer 2 Tunneling Protocol&#xff0c;二层隧道协议&#xff09;是VPDN&#xff08;Virtual PrivateDial-up Network&#xff0c;虚拟私有拨号网&#xff09;隧道协议的一种。VPDN隧道协议主要包括以下三种&#xff0c;目前使用最广泛的是L2TP。 …...

自己写的插件:快速填充圆

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明出处。https://blog.csdn.net/qq_33839952/article/details/94392966 在边界线中填充圆&#xff0c;由用户自己定义填充方式&#xff08;横向等边三角/竖向等边三角/正方形等&#xff09;、圆心距、半径&#xff…...

Java多线程_定时器和单例模式

文章目录一、定时器Timer1.Timer类的方法使用1.1 schedule(TimerTask task,Date time)1.2 public void cancel()&#xff0c;针对TimerThread1.3 schedule(TimerTask task,Date firstTime,long period)1.4 public boolean cancel()&#xff0c;针对TimerTask1.5 scheduleAtFixe…...

AutoCAD中扩展图元数据的应用

1 引 言autocad有非常强大的图形编辑功能&#xff0c;但是与gis系统软件arc&#xff0f;info、mapinfo相比&#xff0c;其属性库功能相对较弱。在autocad数据库中&#xff0c;只是记录着表示图形元素的几何位置、形状、大小的几何坐标和表示图形元素性质&#xff08;如颜色、…...

lisp获取qleader端点_南方CASS和AutoCAD快捷命令大全

原标题&#xff1a;南方CASS和AutoCAD快捷命令大全A——画弧(ARC)AA——给实体加地物名B——自由连接C——画圆(CIRCLE)COPYCLIP——从不同窗口复制局部CP——拷贝(COPY)D——绘制电力线DD——通用绘图命令DDPTYPE——改变点形状E——删除(ERASE)F——图形复制FF——绘制多点房…...