Node.js Express和mongodb文章

Node.js Express和mongodb文章,node.js,express,Node.js,Express,我是Node.js的初学者,最近我尝试分析以下代码:。但是我被绊倒了。我真的不明白这个代码是怎么工作的: articleProvider.findAll(函数(错误,文档){ res.send(文档); }); 此方法调用findAll函数,如下所示: var-articleccounter=1; ArticleProvider=函数(){}; ArticleProvider.prototype.dummyData=[] ArticleProvider.prototype.findAll = *

我是Node.js的初学者,最近我尝试分析以下代码:。但是我被绊倒了。我真的不明白这个代码是怎么工作的: articleProvider.findAll(函数(错误,文档){ res.send(文档); });

此方法调用findAll函数,如下所示: var-articleccounter=1; ArticleProvider=函数(){}; ArticleProvider.prototype.dummyData=[]

ArticleProvider.prototype.findAll = **function(callback) {
 callback( null, this.dummyData )
};**
一个方法怎么可能被一个甚至没有声明的函数回调调用?!感谢您的帮助

以下片段:

ArticleProvider.prototype.findAll = function(callback)
...
正在将
ArticleProvider.findAll
声明为自身作为参数的函数,该函数名为
callback
。调用
ArticleProvider.findall(foo)
时,将使用两个参数调用函数
foo
null
作为第一个参数,而
ArticleProvider.dummyData
作为第二个参数

最好从一本好的Javascript书开始,比如Crockford书。祝你好运

[编辑]

我在下面的一个回复中看到了使用猫鼬的建议,但在使用了猫鼬之后,我现在更喜欢Guillermo Rauch的。它比Mongoose简单得多,并且允许您在没有模式的情况下工作。对于那些您只想在MongoDB上创建一个简单层的情况,Monk为我做了这件事。

以下代码片段:

ArticleProvider.prototype.findAll = function(callback)
...
正在将
ArticleProvider.findAll
声明为自身作为参数的函数,该函数名为
callback
。调用
ArticleProvider.findall(foo)
时,将使用两个参数调用函数
foo
null
作为第一个参数,而
ArticleProvider.dummyData
作为第二个参数

最好从一本好的Javascript书开始,比如Crockford书。祝你好运

[编辑]


我在下面的一个回复中看到了使用猫鼬的建议,但在使用了猫鼬之后,我现在更喜欢Guillermo Rauch的。它比Mongoose简单得多,并且允许您在没有模式的情况下工作。对于那些只需要在MongoDB上添加一个简单层的情况,Monk帮了我一个忙。

Ram做了很好的解释,但我想补充一点,如果你是新手,你可能想看看“mongoose”,而不是直接使用MongoDB。大多数新开发人员都觉得它更简单,而且因为它的广泛使用(不是说mongodb直接使用,而是…),您可能会发现查找样本更容易。下面是一个使用的快速示例


祝你好运

Ram做了很好的解释,但我想补充一点,如果你是新手,你可能想看看“猫鼬”,而不是直接与mongodb合作。大多数新开发人员都觉得它更简单,而且因为它的广泛使用(不是说mongodb直接使用,而是…),您可能会发现查找样本更容易。下面是一个使用的快速示例

祝你好运

如何使用函数调用方法findAll 还没有声明的回调

当你打电话的时候

articleProvider.findAll(function(error, docs){ res.send(docs); });
您正在内联声明函数,然后将其作为参数传递以查找所有。“function(error,docs){res.send(docs);}”是您声明函数并将其作为参数传递的地方

如Ram所示,您可以先声明函数(称为foo),然后将其作为参数传递:

var foo = function(error, docs){ res.send(docs); }
articleProvider.findAll(foo);
请注意,在这两种情况下,您都将函数作为参数传递,而不是执行函数的结果

如何使用函数调用方法findAll 还没有声明的回调

当你打电话的时候

articleProvider.findAll(function(error, docs){ res.send(docs); });
您正在内联声明函数,然后将其作为参数传递以查找所有。“function(error,docs){res.send(docs);}”是您声明函数并将其作为参数传递的地方

如Ram所示,您可以先声明函数(称为foo),然后将其作为参数传递:

var foo = function(error, docs){ res.send(docs); }
articleProvider.findAll(foo);

请注意,在这两种情况下,您都将函数作为参数传递,而不是执行函数的结果

很高兴认识蒙克。对于节点中的快速DB作业来说,似乎是一个非常好的解决方案。很高兴了解Monk。对于节点中的快速DB作业,似乎是一个非常好的解决方案。