哪个技术堆栈(模块,框架)更适合第一个node.js项目,以便研究节点并制作出好的产品?

时间:2012-03-09 20:19:06

标签: javascript web-services node.js

一年前,我在节点中做了一些小步骤。即使这样,也有大量的模块和框架。现在我想更深入地学习节点环境并开始基于Web(Web和移动应用程序服务)项目。我知道很多事情取决于你正在编写什么样的应用程序,但总有一些基础。

此时我想知道:

  1. 从头开始或采取某种框架(你认为哪一个)更好?
  2. 哪些模块最重要?我应该首先注意哪些模块?
  3. 您更喜欢哪些数据库和模块?
  4. 我听说你可以写coffeescript节点。我该怎么办呢?或者使用javascript可能更好?
  5. 关于一些有用的书籍和有关节点的教程。
  6. 所有这些问题都相当广泛,但答案对所有初学者都非常有帮助

    谢谢)

4 个答案:

答案 0 :(得分:5)

我会尝试通过同时开发具有“最先进”模块的不同组合的相同项目尝试进入Node.js的人来回答您的问题。

  1. 像往常一样,项目的复杂性决定了这种方法。如果你想学习Node的各种复杂性,你可以从头开始构建,只需要使用相关的库(例如连接和数据库层抽象,例如cradle或mongoose,在答案2中更多)。他们。

    如果你想拥有一个可以找到可行解决方案的代码库,你应该选择Express框架(基于连接构建),因为它似乎是节点开发人员中最普遍的。许多教程网站提供易于理解的examples that include this framework。 Bogart模块也会这样做,但它不是公开的。

  2. 除Express之外,您可能需要查看HTML输出的模板系统。我会建议Jade。我将在答案4中解释原因。另一种选择是Mustache或EJS。

    然后您应该查看cradlemongoose,因为方便的数据库访问需要这些模块。 既然涵盖了核心功能和数据库,您可能需要查看LESS或SASS模块的 CSS 魔术。

    身份验证可以由everyauth处理,它提供Twitter,facebook和更多oauth功能。

  3. 我想我已经覆盖了2中的模块,所以现在进入DB问题。我确实喜欢使用 MongoDB ,您可以轻松地使用它并在Internet上找到大量文档和最佳实践。我自己发现 CouchDB 更有趣,因为它提供了一个出色的基于API的访问,它的标语是“放松”。 - 但这并不重要。只要您了解驱动mongo和沙发的NoSQL方法,您就可以使用它们中的任何一种。我强烈建议避免传统的基于SQL 的数据库,因为NoSQL数据库系统的 JSON 格式化输出无缝集成到Node.js的JavaScript环境中。

  4. 我开发了JS和Coffee,我可以告诉你一件事:用一杯后者,你可以更容易地让你的项目正常运行。 基于缩进的编程与Jade Templating系统密切相关,这也是对缩进敏感的。对服务器代码和视图代码(以及CSS,即使是缩进也只是为了您自己的方便)具有相同的思维方式,使得同时开发更容易。我还没有发现JS的一个问题,用一个更漂亮的CoffeeScript表达式无法解决。

  5. 关注github上的节点项目,按照github上的Express / Connect / cradle / Jade / mongoose /..-项目,google查看“blog node express tutorial”并尝试加入 IRC 社区。那里有趣的频道是#node.js,也许是## javascript。从那以后,人们会带你去更专业的房间。我强烈建议你去那里,这是一个非常有帮助的一堆。

    O'Reilly出版商有一些非常好的书,但它们在运到书店的那一刻就已经过时了。由于社区每天都在开发新功能和版本,因此您应该尽可能地接近核心功能的开发人员。在IRC上,您甚至可以向他们询问(可能是一些有趣的)问题 - 尽管如此,您仍会得到答案和提示。

    简而言之:与社区保持联系。

答案 1 :(得分:2)

  1. Connect是一个功能强大且灵活的迷你框架。我认为,使用正确的模块组合是最佳解决方案。
  2. node-mongodb-native用于MongoDB,db-mysql用于MySQL,just用于模板化。使用The node toolbox查找更多内容。
  3. 我使用MongoDB和MySQL。这取决于项目。
  4. 我使用普通的JavaScript,但这是一个品味问题。我爱土生土长。
  5. 源代码。真的。 Node.JS生态系统正在迅速发展。大部分文档在撰写本文时已过时。使用GitHub来监视项目。这真的很有帮助。

答案 2 :(得分:1)

  1. 使用库而不是框架,除了expressjs。大多数框架往往使问题比现在更复杂。请使用具有良好许可条款的库。如果他们不再维护,你至少可以接管这个项目。
  2. ExpressJS,Jade,Stylus,SocketIO,下划线,jsdom
  3. Mongo绝对是最受欢迎的。我认为原因是它的控制台界面使用JavaScript。它与开发者创造了更多的“语言协同作用”。
  4. CoffeeScript有自己的怪癖,但它仍然比纯JavaScript好得多。请注意,这是一个意见。
  5. 无法帮助你;我通过阅读在线资料完成了学习过程。

答案 3 :(得分:0)

  1. 这取决于你的知识基础..我开始使用一堆框架并向后学习核心概念,但我建议先从小开始
  2. 有足够多的Express指南,这是一个很好的方式来推动节点,但它确实需要一个模板引擎,如Jade或EJS ..(我更喜欢ejs来渲染基本的.html文件)。作为一个帮助,节点有大量的基础模块,例如:require(' http');这是理解请求流程的良好起点。
  3. Mongo和Redis是db的最宽容的IMO,并且拥有大量的抽象。虽然你可以选择像Parse.com这样更商业化的东西
  4. 如果你已经知道JS ..坚持下去。否则,请使用CS作为快速编写Javascript的方法,而不是替换它的基础。对于初学者来说,还有更多的JS在线示例,但在Git
  5. 上实现更多坚如磐石的咖啡脚本实现
  6. 也不确定这一点。看看Brad Dayley" NodeJS,MongoDB和AngularJS"书和谷歌MEAN堆栈开发