我正在關注使用node.js,express和mongodb構建博客的this教程。負責返回和更新數據的JavaScript函數
以下是控制文章提交(我認爲)的功能。
提供商和數據
因爲本文的目的是展示一個可以如何使用Node.js的一個 持久的方法,我們將利用一個抽象開始: 提供商。這些'提供者'將負責返回並更新數據。最初,我們將創建一個虛擬內存版本 ,以引導我們啓動並運行,但隨後我們將轉到使用 一個真正的持久層,而不更改調用代碼。
articleprovider-memory.js:
var articleCounter = 1;
ArticleProvider = function(){};
ArticleProvider.prototype.dummyData = [];
ArticleProvider.prototype.findAll = function(callback) {
callback(null, this.dummyData)
};
ArticleProvider.prototype.findById = function(id, callback) {
var result = null;
for(var i =0;i<this.dummyData.length;i++) {
if(this.dummyData[i]._id == id) {
result = this.dummyData[i];
break;
}
}
callback(null, result);
};
ArticleProvider.prototype.save = function(articles, callback) {
var article = null;
if(typeof(articles.length)=="undefined")
articles = [articles];
for(var i =0;i< articles.length;i++) {
article = articles[i];
article._id = articleCounter++;
article.created_at = new Date();
if(article.comments === undefined)
article.comments = [];
for(var j =0;j< article.comments.length; j++) {
article.comments[j].created_at = new Date();
}
任何人都可以用簡單的英語向我解釋了每個功能在做什麼(對不起,我一個JavaScript初學者)?
(順便說一下,這是因爲任何常見的做法是,筆者決定只用一個ArticleProvider
CAP開始?)