ejs 模板数据格式化问题,一直困扰了很久,网上关于类似的文章特别少,很多东西都需要自己尝试,今天在google上又搜了一下相关的文档,才终于解决,其实很简单,没有想象的复杂。


由于也是nodejs的初学者,还没有自己写框架的能力,本blog用的是nodeJs+express 的框架基础完成的,express 本身就集成了ejs,直接用就可以了。网上有这么介绍使用方法的:


QQ截图20150622200159.png


按照上述方法尝试,发现总会提示  ejs 找不到,但是我的ejs是存在的,后来分析原因,可能是由于作者并没有使用express框架。废话不多说,介绍一下我的方法,和上述类似,就是有一点点区别:


1、安装 moment ,日期格式化插件,轻量级

npm install moment --save

2、app.js 中加入

//数据格式化
app.locals.myDateFormat = function(date){
    return moment(date).format('HH:mm MM-DD-YYYY');
};
//字符截取
app.locals.cutMoreWords = function(str,length){
    var newStr = str;
    if(str.length > length){
        newStr = str.substring(0,length) + "..."
    }
    return newStr;
};

3、前端引用:

<div class="col-md-9 col-sm-9 col-xs-12">
                    <h2><a href="/details/<%=item._id%>.html"><%=item.title%></a></h2>
                    <div class="blog-des"><%-item.discription%></div>
                    <a href="/details/<%=item._id%>" class="more">查看更多 <i class="fa fa-long-arrow-right"></i></a>
                    <ul class="blog-info">
                        <li><i class="fa fa-calendar"></i> <%=myDateFormat(item.date)%></li>
                        <li><i class="fa fa-eye"></i> <%=item.clickNum%></li>
                        <li><i class="fa fa-tags"></i> <%=item.tags%></li>
                    </ul>
                </div>

这里直接用 <%=myDateFormat(item.date)%>  来格式化数据就可以了,是不是很简单?