如何开始使用Node.js

1262

有没有适合初学者入门 Node.JS 的好资源?例如好的教程、博客或书籍?

当然,我已经访问过它的官方网站http://nodejs.org/,但我不认为他们提供的文档是一个很好的起点。


8
如果你正在思考如何使用node.js构建网站,且你有PHP背景,我曾在这里询问如何做到这一点:https://dev59.com/tGgu5IYBdhLWcg3wdGwb。我认为这是很多人忽略的事情。 - Benjamin Gruenbaum
3个回答

4697

您可以按照以下教程开始学习:

教程

开发者网站

视频

视频教程

图书

课程

博客

播客

JavaScript 资源

Node.js 模块

其他


21
这些书是按照你对它们的价值排序还是随机排序的?我想购买一本关于nodeJS基础知识的好参考手册。 - David
6
@David:大致上是随意选择的。前两个是免费的,最后一个处于预览模式。我建议先从《Node入门》开始学习。 - yojimbo87
129
我的书(Node.js实战)可以永久免费在这里获取:http://ofps.oreilly.com/titles/9781449398583/。现在它也是电子书和纸质书。请自行取用。 - sh1mmer
57
虽然我确定编制这个清单需要花费了很多精力,但只列出你认为最好的不超过3个地方将会更加有帮助。 - one eyed dev
15
@sh1mmer 发布的链接已失效。这个链接可以使用(同一本书):http://chimera.labs.oreilly.com/books/1234000001808/index.html - Nepoxx
显示剩余25条评论

1836

首先,学习Node.js的核心概念:

接下来,您会想看看社区提供了什么:

Node.js软件包管理的黄金标准是NPM

最后,您需要知道各种任务的一些流行软件包:

对于每个项目有用的工具:

  • Underscore 包含几乎每个你想要的核心实用方法。
  • Lo-Dash 是 Underscore 的克隆,旨在更快、更可定制,并具有许多 Underscore 没有的功能。某些版本可以用作 underscore 的替代品。
  • TypeScript 使 JavaScript 变得更加容易,同时也让你远离麻烦!
  • JSHint 是一个代码检查工具,可以节省大量时间找到愚蠢的错误。找一个插件为你的文本编辑器自动运行它。

单元测试:

  • Mocha 是一个流行的测试框架。
  • Vows 是异步测试的一个很好的实现,尽管有些陈旧。
  • Expresso 是一个更传统的单元测试框架。
  • node-unit 是另一个相对传统的单元测试框架。
  • AVA 是一个新的测试运行器,内置了 Babel,并可并发运行测试。

Web 框架:

  • Express.js目前是最流行的框架。
  • Koa是由Express.js团队设计的新型Web框架,旨在成为更小、更表达力强和更健壮的Web应用程序和API的基础。
  • sails.js是Node.js最受欢迎的MVC框架,基于express。它旨在模拟像Ruby on Rails这样的框架的熟悉MVC模式,但支持现代应用程序的要求:具有可扩展的面向服务的架构的数据驱动API。
  • Meteor捆绑了jQuery、Handlebars、Node.js、WebSocketMongoDB和DDP,并提倡惯例优于配置,而不是Ruby on Rails克隆。
  • Tower已弃用)是Express.js的顶层抽象,旨在成为Ruby on Rails的克隆。
  • Geddy是另一种Web框架。
  • RailwayJS是一个受Ruby on Rails启发的MVC Web框架。
  • Sleek.js是一个简单的Web框架,构建在Express.js之上。
  • Hapi是一个以配置为中心的框架,具有内置的输入验证、缓存、身份验证等支持。
  • Trails是一个现代的Web应用程序框架。它借鉴了RailsGrails的优点,通过遵循简单、基于惯例的API驱动设计哲学来加速开发。

  • Danf是一个全栈OOP框架,提供许多功能,以生成可扩展、可维护、可测试和高性能的应用程序,并允许在服务器(Node.js)和客户端(浏览器)两侧以相同的方式编码。

  • Derbyjs是一个反应式的全栈JavaScript框架。他们长期使用反应式编程和同构JavaScript等模式。

  • Loopback.io是一个强大的Node.js框架,用于创建API并轻松连接到后端数据源。它有一个Angular.js SDK,并为iOS和Android提供SDK。

Web框架工具:

网络:

  • Connect 是Node.js世界中的Rack或WSGI。
  • Request 是一个非常流行的HTTP请求库。
  • socket.io 适用于构建WebSocket服务器。

命令行交互:

  • minimist 只是命令行参数解析。
  • Yargs 是一个强大的命令行参数解析库。
  • Commander.js 是构建单次使用命令行应用程序的完整解决方案。
  • Vorpal.js 是构建成熟、沉浸式命令行应用程序的框架。
  • Chalk 使您的 CLI 输出变得漂亮。

代码生成器:

  • Yeoman 命令行脚手架工具。
  • Skaffolder 具有可视化和命令行界面的代码生成器。它可以从数据库模式或 OpenAPI 3.0 YAML 文件生成可定制的 CRUD 应用程序。

使用流进行工作:


6
在框架部分,您应该添加http://railwayjs.com/。 - Sagiv Ofek
22
@Farm的问题是关于node.js的。Angular是一个浏览器框架,在这里没有关联。 - Alexander Ulitin
Promise:为了编写可维护和易读的异步代码,我建议使用 https://github.com/kriskowal/q。 - Farm
3
NodeJS 是 JavaScript 的未来。 - Tarek Kalaji
一个路线图在这种情况下可能会很有用,就像这个链接一样:https://github.com/aliyr/Nodejs-Developer-Roadmap - Hamed Lohi
显示剩余4条评论

152

使用源代码,卢克。

不过说真的,我发现从源代码构建Node.js,运行测试并查看基准测试确实让我找到了正确的方向。从那里开始,lib目录中的.js文件是一个好的查找位置,尤其是http.js文件。

更新:我在一年多前写下了这个答案,自那时以来,有大量适用于学习Node.js的优秀资源可用。虽然我仍然相信深入研究源代码是值得的,但我认为现在有更好的方法来开始入门。我建议阅读一些关于Node.js的图书,这些书正在开始出版。


10
+1 对于开头的话很好 :3 但这就是我学习使用 Kohana 的方法。只要你能理解源代码,这是一个相当不错的方法。 - Olical
1
Express帮助你在源代码中入门,至少它为你提供了一个起点,一个工作示例...可以随意调整。https://expressjs.com/en/guide/routing.html - Wolfpack'08

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接