node.js - 在nodejs中,将函数应用于从MongoDB查询返回的所有文档上的字段

  显示原文与译文双语对照的内容
0 0

我希望将截断( 字符串,单词) 函数应用于由mongoose查询返回的所有项目文档的'正文'字段。 下面是一个示例:


Article.find({})
. sort({'meta.created': 'desc'})
. limit(6)
. exec(function(err, articles) {
//Truncate the article.body field on each articles here?
 res.render(articles: articles});
 });

使用简单的截断函数,类似于:


function truncate(string, words) {
 var value_arr = string.split( ' ' );
 if( words <value_arr.length ) {
 value = value_arr.slice(0, words).join( ' ' );
 }
 return value;
}

如何将这里函数应用于每个文章的正文字段( 保留项目的结构以便在模板中使用)? 先谢谢了。

时间: 原作者:

0 0

正确的方法,我相信,将truncatedBody属性添加到你的文章中,并实现truncate方法作为 static:


Article.methods.setTruncatedBody = function(limit){
//If truncatedBody is already computed, don't do anything
 if(this.truncatedBody) 
 return;

 var value_arr = body.split( ' ' );
 if( limit <value_arr.length ) {
 this.truncatedBody = value_arr.slice(0, words).join( ' ' );
 }
 else
 this.truncatedBody = body;
}

然后,在你的控制器中:


Article.find({})
. sort({'meta.created': 'desc'})
. limit(6)
. exec(function(err, articles) {
 for(var article in articles)
 article.setTruncatedBody(5);
 res.render(articles: articles});
 });

原作者:
...