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

一年前我在节点上做了几个小小的步骤。 即使那样,也有很多模块和框架。 现在我想更深入地学习节点环境,并启动一个基于Web的(Web和移动应用服务)项目。 我明白,很多事情取决于你正在写什么types的应用程序,但总是有一些基础。

在这一点上,我想知道:

  1. 从头开始还是采取某种框架(你认为哪一个)更好?
  2. 哪些模块是最重要的? 我应该首先关注哪些模块?
  3. 你喜欢哪个数据库和模块?
  4. 我听说你可以写信给咖啡节点。 我该怎么办? 或者,也许最好使用JavaScript?
  5. 关于一些有用的书籍和教程节点的行动。

所有这些问题都是相当广泛的,但对所有初学者来说,答案都是非常有帮助的

谢谢 )

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

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

    如果你想有一个代码库,你可以find可行的解决scheme,你应该去的Express框架(build立在连接),因为它似乎是最广泛的节点开发人员。 许多教程网站提供了易于遵循的例子,包括这个框架 。 Bogart模块也会这样做,但并不像公知的那样。

  2. 除Express以外,您可能需要查看HTML输出的模板系统 。 我会build议玉 。 我将解释为什么在答案4.一个替代品将是胡须或EJS。

    那么你应该检查摇篮或mongoose ,因为这些模块将需要方便的数据库访问 。 现在已经涵盖了核心function和数据库,您可能需要查看LESS或SASS模块的CSS魔法。

    身份validation可以由everyauth处理,它提供twitter,facebook和更多的oauthfunction。

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

  4. 我用JS和Coffee开发,我可以告诉你一件事:用后者的杯子,让你的项目更容易运行起来。 Jade Templating系统同时兼容缩进,因此基于缩进的编程可以同时进行。 对于服务器代码和视图代码(以及CSS,即使缩进也只是为了您自己的方便)具有相同的思维方式,这使得同时进行开发变得更容易。 我还没有从JS中find一个无法用更漂亮的CoffeeScriptexpression式解决的问题。

  5. 按照github上的node项目,按照github上的Express / Connect / cradle / Jade / mongoose /..-项目,google为“blog node express tutorial”,尝试joinirc.freenode.net上的IRC社区。 有趣的渠道将有#node.js和也许##的JavaScript。 从那里,人们会告诉你更专业的房间。 我强烈build议你去那里,这是一个非常有帮助的一群。

    O'Reilly出版社出版了一些非常好的书,但是它们在运到书店的时候已经过时了。 由于社区每天都在开发新的function和版本,因此您应尽可能接近开发者的核心function。 在IRC上,你甚至可以用你的(可能有点儿有趣的)问题来问问他们 – 你会得到答案和提示。

    总之:与社区保持联系。

  1. Connect是一个function强大且灵活的迷你框架。 有了这套正确的模块,我认为是最好的解决scheme。
  2. MongoDB的node-mongodb-native ,MySQL的db-mysql , 仅用于模板。 使用节点工具箱来查找更多。
  3. 我使用MongoDB和MySQL。 这取决于项目。
  4. 我使用普通的JavaScript,但这是一个品味问题。 我爱本地人。
  5. 源代码。 真的。 Node.JS生态系统发展非常迅速。 大部分文件在编写时已经过时了。 使用GitHub来监视项目。 这真的很有帮助。
  1. 使用库而不是框架,除了expressjs。 大多数框架往往会使问题比现在更复杂。 请使用符合良好许可条款的图书馆。 如果他们不再被维护,你至less可以接pipe这个项目。
  2. ExpressJS,Jade,Stylus,SocketIO,下划线,jsdom
  3. 当然,Mongo最受欢迎。 我认为原因是因为它的控制台界面使用JavaScript。 它与开发者创造了更多的“语言协同作用”。
  4. CoffeeScript有它自己的怪癖,但仍然比普通的JavaScript好多了。 请注意,这是一个意见。
  5. 帮不了你 我从网上阅读的东西中学习过程。
  1. 这取决于你的知识基础..我开始使用一堆的框架,并努力向后理解核心概念,但我build议从小开始
  2. 有足够的快速指南,是一个很好的方式来滚动节点,但它需要一个模板引擎,如Jade或EJS ..(我更喜欢ejs呈现基本的.html文件)。 作为一个帮助,节点有大量的基本模块,例如:require('http'); 这是理解请求stream的好起点。
  3. Mongo和Redis是一些最为宽容的db的IMO,并且有很多抽象。 尽pipe你可以使用更多像Parse.com这样的商业产品
  4. 如果你已经知道JS ..坚持下去。 否则,用CS来快速写Javascript,而不是取代它的基础。 在网上也有更多的JS初学者的例子,但更方便的Git咖啡脚本实现
  5. 不是很确定这个要么..看看Brad Dayley的“NodeJS,MongoDB和AngularJS”书和谷歌MEAN堆栈开发