Javascript 如何正确构造nodejs代码

Javascript 如何正确构造nodejs代码,javascript,model-view-controller,node.js,Javascript,Model View Controller,Node.js,我已经玩node.js有一段时间了,我真的开始欣赏它是多么棒。然而,有一件事我很难理解,那就是我应该如何构造我的代码以使其可维护。我在互联网上看到的大多数教程都将所有的JS放在一个文件中,这并不是管理代码的好方法。我知道javascript中没有真正意义上的“类”,但有没有一种(标准)方法可以让我用与构建PHP项目相同的方式格式化代码以实现可维护性,例如?Afaik您可以使用require包含您自己的js文件(包含导出的方法),方法是: 在someJsFile.js中,您可以导出如下方法: ex

我已经玩node.js有一段时间了,我真的开始欣赏它是多么棒。然而,有一件事我很难理解,那就是我应该如何构造我的代码以使其可维护。我在互联网上看到的大多数教程都将所有的JS放在一个文件中,这并不是管理代码的好方法。我知道javascript中没有真正意义上的“类”,但有没有一种(标准)方法可以让我用与构建PHP项目相同的方式格式化代码以实现可维护性,例如?

Afaik您可以使用
require
包含您自己的js文件(包含导出的方法),方法是:

someJsFile.js
中,您可以导出如下方法:

exports.someMethod = function(){ /*...*/ };
在主文件中,您可以使用
req.someMethod()

因此,通过这种方式,您可以将代码拆分为不同的文件,这些文件是您从某个中心js文件中
需要的


按照Kooilnc的建议,在了解了require在node.js中的工作原理后(非常简单),解释node.js
require

您可以查看Node.js可用模块的源代码:

如果您计划使用Express(目前最强大的node.js框架之一)开发第一个节点应用程序,您可以在此处查看其特定示例:


(还有一个mvc示例)

我要补充的是,就可维护性而言,我认为使用闭包深度嵌套回调的典型风格是影响节点程序可理解性的最大障碍,也是完全不必要的

对于每个:

a.doSomething(val, function(err,result){
  b.doSomethingElse(result,function(err,res){
    ...
  });
});
总有一个:

a.doSomething(val, onDoSomething);

function onDoSomething(err,res) {
  ...
}
我的经验法则是:任何超过三个嵌套级别的操作都需要一个新的非闭包回调函数


(Node.js确实需要一本样式手册。)

我完全支持你的样式手册。我要在邮件列表上推荐它!
a.doSomething(val, onDoSomething);

function onDoSomething(err,res) {
  ...
}