2013-06-19 66 views
3

我想將截斷(字符串,單詞)函數應用於由貓鼬查詢返回的所有文檔文檔的「正文」字段。一個例子是如下:將函數應用於從nodejs中的MongoDB查詢返回的所有文檔中的字段

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; 
} 

如何申請此功能,每一個文章正文字段(保留對使用冠詞結構模板)?提前致謝。

回答

2

正確的方法,我相信,將是一個truncatedBody屬性添加到您的文章,並實現截斷方法作爲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}); 
    }); 
+0

甚至沒有想到使用實例方法,感謝您的建議! – adamK

相關問題