Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法 原创
在 Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的步骤如下:
1. 安装 silly-datetime 库
可以通过 npm 命令安装 silly-datetime 库,命令为:
npm install silly-datetime --save
2. 在 app.js 中配置模板引擎和使用库方法
在 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(); }); // 创建路由和功能代码 // ...
3. 在模板文件中使用库方法
在模板文件中,可以使用模板语法调用布局文件中定义的 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模板实例分析
相关文章
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
这篇文章主要介绍了nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-11-11如何在NestJS中添加对Shopify的WebHook验证详解
这篇文章主要为大家介绍了如何在NestJS中添加对Shopify的WebHook验证详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08使用cluster 将自己的Node服务器扩展为多线程服务器
nodejs在v0.6.x之后 增加了一个模块 cluster 用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现。本文将介绍利用cluster模块创建的多线程的问题。2014-11-11Node.js queryString 解析和格式化网址查询字符串工具使用
这篇文章主要为大家介绍了Node.js queryString 解析和格式化网址查询字符串工具使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04
最新评论