Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法 原创

原创  更新时间:2023年05月12日 09:19:25   原创 投稿:shichen2014  
这篇文章主要介绍了Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法,结合具体实例形式分析了express框架引入EJS模版以及导入 silly-datetime 库的格式化方法传递给EJS模版使用的相关操作技巧,需要的朋友可以参考下

在 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')

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

相关文章

  • pm2工具在Node.js开发部署中的重要作用详解

    pm2工具在Node.js开发部署中的重要作用详解

    这篇文章主要为大家介绍了pm2工具在Node.js开发部署中的重要作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Express + Session 实现登录验证功能

    Express + Session 实现登录验证功能

    本文主要介绍在 Express 框架中,如何使用 Session 来实现用户登录身份验证。对express session实现登录验证相关知识,感兴趣的朋友一起看看吧
    2017-09-09
  • Node.js实现批量去除BOM文件头

    Node.js实现批量去除BOM文件头

    这篇文章主要介绍了Node.js实现批量去除BOM文件头,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • node.js cookie-parser之parser.js

    node.js cookie-parser之parser.js

    这篇文章主要介绍node.js cookie-parser之parser.js,讲解的比较详细,需要的朋友可以参考下。
    2016-06-06
  • node版本冲突问题的解决方案

    node版本冲突问题的解决方案

    因为项目用的依赖和要运行环境的node.js版本起了冲突,下面这篇文章主要给大家介绍了关于node版本冲突问题的解决方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Node接收电子邮件的实例代码

    Node接收电子邮件的实例代码

    本篇文章主要介绍了Node接收电子邮件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Node.js 实现简单爬虫的示例代码

    Node.js 实现简单爬虫的示例代码

    本文主要介绍了Node.js 实现简单爬虫,爬取美食网站的菜品标题和图片链接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Nodejs使用fs-extra模块进行目录和文件操作用法示例

    Nodejs使用fs-extra模块进行目录和文件操作用法示例

    fs-extra模块是基于fs 的文件操作相关工具库,封装了一些fs实现起来相对复杂的工具,下面这篇文章主要给大家介绍了关于Nodejs使用fs-extra模块进行目录和文件操作用法的相关资料,需要的朋友可以参考下
    2024-06-06
  • Node.js Streams文件读写操作详解

    Node.js Streams文件读写操作详解

    如果你在处理应用中 I/O 相关的操作,你可以利用 Node.js 中的流(stream),这篇文章主要为大家详细介绍了Node.js Streams文件读写操作,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 详解离线安装npm包的几种方法

    详解离线安装npm包的几种方法

    这篇文章主要介绍了详解离线安装npm包的几种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论