Express 框架中使用 EJS 模板引擎并结合 silly(express)墙裂推荐

随心笔谈2年前发布 编辑
166 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买



在 Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的步骤如下:

可以通过 npm 命令安装 silly-datetime 库,命令为:

npm install silly-datetime –save

在 app.js 文件中,需要配置使用 EJS 模板引擎,并使用 res.locals 将库方法传递给模板。下面是一个例子:

const express=require(‘express’);
const app=express();
const sd=require(‘silly-datetime’);
// 模板引擎配置
app.set(‘views’, __dirname + ‘/views’); // 设置模板文件夹
app.set(‘view engine’, ‘ejs’); // 设置视图模板引擎
// 定义全局变量,模板都可以访问到
app.use(function (req, res, next) {
? // 将 silly-datetime 的 format 方法用 locals 来代理
? res.locals.formatDate=function (date, fmt) {
? ? return sd.format(date, fmt);
? };
? next();
});
// 创建路由和功能代码
// …

在模板文件中,可以使用模板语法调用布局文件中定义的  formatDate 函数。具体方式如下:

<!– 渲染数据列表 –>
<% for(var i=0; i<articles.length; i++) { %>
? <tr>
? ? <td><%=articles[i].title %></td>
? ? <td><%=locals.formatDate(articles[i].created_at, ‘YYYY-MM-DD HH:mm:ss’) %></td>
? </tr>
<% } %>

以上模板代码将使用 silly-datetime 的 format 方法对文章发布时间进行了格式化处理,最终展示为 YYYY-MM-DD HH:mm:ss 格式的日期字符串。

注意:在模板文件中需要正确引入 silly-datetime 库,否则无法使用 formatDate 函数。

补充说明:silly-datetime 库的原始用法为:

const sd=require(‘silly-datetime’);
sd.format(new Date(), ‘YYYY-MM-DD HH:mm:ss’);//此处的new Date()位置可以传入其他日期格式参数

对应的,在app.js中定义该函数给EJS模版使用,则对应形式为:

? res.locals.formatDate=function (date, fmt) {
? ? return sd.format(date, fmt);
? };

相应的,EJS模版中使用该函数,则是需要通过locals来调用定义的formatDate方法,再传入对应位置的参数即可:

locals.formatDate(articles[i].created_at, ‘YYYY-MM-DD HH:mm:ss’)

该方法经笔者测试可以正常使用。

您可能感兴趣的文章:node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门express框架通过ejs模板渲染输出页面实例分析nodejs中的express-jwt的使用解读NodeJS?Express使用ORM模型访问关系型数据库流程详解NodeJs Express框架操作MongoDB数据库执行方法讲解NodeJs?Express路由使用流程解析NodeJs Express中间件使用流程解析express框架+bootstrap美化ejs模板实例分析

© 版权声明

相关文章