本文转载自:众成翻译
译者:网络埋伏纪事
连接:http://www.zcfy.cc/article/1748
原文:https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/node
这是 Node.js 系列教程 Node Hero 的第一篇文章。在这些章节中,将学习如何上手 Node.js 以及如何使用它交付软件产品。git
本教程从基础开始 - 不须要之前有 Node.js 知识。本教程的目标是让你入门 Node.js,确保你能够理解如何用它来编写应用程序,因此若是有不清楚的,请立刻问咱们。github
目录docker
开始使用 Node.js数据库
使用 NPMnpm
理解异步编程编程
第一个 Node.js 服务器json
Node.js 数据库教程windows
在第一篇教程中,将学习什么是 Node.js,如何在电脑上安装它,如何开始使用它 - 这样在下一章咱们就能够作实际开发。咱们开始吧!
官方 Node.js logo
Node.js 是一个创建在 Chrome 的 JavaScript 引擎 V8 之上的 JavaScript 运行时。Node.js 使用一个事件驱动的、非阻塞式的 I/O 模型,让它轻量而高效。
也就是说:Node.js 提供了用 JavaScript 编写服务器的可能性,这种服务器具备使人难以置信的性能。正如官方声明所说:Node.js 是一个使用与 Google Chrome 浏览器相同 JavaScript 引擎 V8 的运行时。可是这还不足以支撑 Node.js 的成功 - Node.js 还使用了专一于异步 I/O 的多平台支持库 libuv。
官方 libuv logo
从开发者的观点来看,NodeJS 是单线程的 - 可是在幕后,它是用 libuv 来处理线程、文件系统事件、实现事件循环、使 Node.js 具备线程池特征 等等。大多数状况下,咱们不会直接与它交互。
要获得最新的 Node.js 执行文件,能够访问 Node.js 官网:https://nodejs.org/en/download/。
用这种方法,很容易开始 - 可是若是之后要添加更多 Node.js 版本,最好是从使用 Node 的版本管理器 nvm 开始。
一旦安装了 NVM,就可使用很简单的 CLI API 来与 Node.js 交互了。
nvm install 4.4
而后,若是想看看试验性版本:
nvm install 5
要校验 Node.js 的启动和运行,请执行:
node --version
若是一切顺利,就会返回当前活动的 Node.js 执行文件的版本号。
若是正在开发一个支持 Node.js v4 的项目,能够用以下命令开始使用它:
nvm use 4
而后能够用以下命令切换到 Node.js v5:
nvm use 5
好了,如今咱们知道了如何安装和在 Node.js 版本之间切换 - 可是这有何意义?
自从 Node.js 基金会成立,Node.js 就有一个发布计划。这与 Linux 基金会的其它项目很类似。这意味着有两个发布版本:稳定版和试验版。在 Node.js 中,带有长期支持(LTS)的稳定版是以偶数开始(4,6,8...),而试验版是从奇数开始(5, 7...)。咱们推荐在生产环境中用 LTS 版本,而用试验版尝试新东西。
若是你的操做系统是 Windows,请使用 nvm-windows。
要开始使用 Node.js,先在终端中试试!只须要键入 node
,就能够启动 Node.js:
$ node >
好了,下面咱们试着打印点什么:
$ node > console.log('hello from Node.js')
一旦敲了回车,就会获得下面这样的信息:
> console.log('hello from Node.js') hello from Node.js undefined
用这个界面随便玩玩 Node.js - 一般会在这里尝试点小代码片断,由于我不想把它们放到一个文件中。
*
是时候建立咱们的 Hello Node.js 应用了!
首先建立一个 index.js
文件。打开 IDE(Atom、Sublime、Code 都行),建立一个新文件,而后存为 index.js
。完成后,复制以下代码片断到该文件中:
// index.js console.log('hello from Node.js')
要运行该文件,只需再次打开终端,转到你存放 index.js 文件的目录,而后执行 node index.js
命令。你会看到它会生成与前面同样的输出 - 在终端上直接打印字符串。
如今你已经有了 index.js
文件,该升级一下游戏了!下面咱们建立更复杂的应用,基于可读性和可维护性的目的,将源代码分红多个 JavaScript 文件。打开 IDE(Atom、Sublime、Code 均可以),建立以下目录结构(带有空文件),可是暂时忽略 package.json
,咱们将在下一步自动生成它:
├── app | ├── calc.js | └── index.js ├── index.js └── package.json
每一个 Node.js 项目都是从建立一个 package.json
文件开始 - 能够把它看成是应用程序及其依赖的 JSON 表示。它包含了应用程序的名称、做者,以及运行应用程序所需的全部依赖。咱们打算在后面使用 NPM 一章中再讲解依赖。
能够在终端中使用 npm init
命令,以交互式的方式生成 package.json
文件。
键入回车后,会被要求给几个输入,好比应用程序的名称、版本、描述等等。不要担忧,只管敲回车,直到获得了 JSON 片断,以及提问 is it ok?
。最后一次敲回车,package.json
就被自动生成了,放在应用程序的文件夹中。若是在 IDE 中打开该文件,就会看到跟以下代码片断很类似的代码:
{ "name": "@risingstack/node-hero", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index.js" }, "author": "", "license": "ISC" }
给 package.json
添加一个 start
脚本是一个好实践 - 一旦你像上例同样这样作了,就能够用 npm start
启动应用。若是要把应用程序部署给 PaaS 提供者,那么就很方便了 - 它们会识别它,而后用它启动你的应用程序。
如今回到咱们建立的第一个文件 index.js
。我建议让这个文件保持很瘦 - 只请求应用程序自己(来自你以前建立的 /app
子目录下的 index.js 文件)。复制以下脚本到 index.js
文件,而后存盘:
// index.js require('./app/index')
如今到了开始建立实际应用程序的时候了。打开 /app
文件夹下的 index.js 文件,建立一个很简单的示例:数字数组相加。在本例中,index.js
会只包含咱们要加的数字,执行计算的逻辑须要放在另外一个模块中。
将以下脚本粘贴到 /app
目录下的 index.js
中。
// app/index.js const calc = require('./calc') const numbersToAdd = [ 3, 4, 10, 2 ] const result = calc.sum(numbersToAdd) console.log(`The result is: ${result}`)
如今将实际的业务逻辑粘贴到同一文件夹下的 calc.js
文件中。
// app/calc.js function sum (arr) { return arr.reduce(function(a, b) { return a + b }, 0) } module.exports.sum = sum
要检查你是否成功,就保存这些文件,打开终端,键入 npm start
或者 node index.js
。若是你全部东西都作对了,会获得答案:19
。若是出错了,就仔细检查一下控制台日志,根据日志找到问题所在。
在下一章使用 NPM 中,咱们会看看如何使用 JavaScript 的包管理器 NPM。