2019年node js快速指南

・9 分钟阅读

介绍

什么是node.js?

Node.js既开源又免费,可以用于各种用途,举几个例子,Node.js非常有效地提供动态内容。如果你想快速有效地启动和运行博客,Node.js可以简化流程。它基于JavaScript,大多数Web开发人员可以使用Node.js,而不必学习全新语言的。Node.js也非常高效,处理所有异步请求,包含的包管理器可以访问世界上最大的存储库。

优点

Node.js有以下几个优点:

  • Native支持异步任务,例如,当用户向Node.js编写的脚本发出请求时,Node.js在处理当前请求时继续可用于新请求。
  • 支持大多数Linux发行版,并且有大量预先编写好的软件包可供你使用,
  • 具有内置的大部分基本功能。这包括编辑,移动或删除文件的能力;以及与MySQL,MongoDB和许多其他东西的交互,而无需使用包管理器。
  • 世界上最大的软件包仓库: npm
  • 相似的JavaScript代码语法,Node.js本质上是服务器端的JS 。

劣势

不过,不幸的是,node.js有它的缺点

  • PHP相比,它是一种比较新的语言,它的代码库经常被更新,这意味着你使用的调用或方法,可能无法在Node.js的先前版本或未来版本中使用。
  • Node.js可能会花费更长时间来编写代码,因为它不能很容易地使用其他库,比如,ImageMagick,是一个在PHP上使用的流行库,它不支持node.js ,
  • 与Java不同,异常很难实现。这意味着,如果你的代码中有成千上万行的JS文件,就几乎不可能找到错误,

使用Node.js

前提条件

  • 任何现代版本的Ubuntu,CentOS或Debian ,本文将只介绍CentOS的安装过程,
  • 至少256 MB的RAM 注意,这个依赖于你要运行的应用程序,
  • 对于本教程,你还需要一个文本编辑器,如Vim或Nano ,

安装Node

更新软件包管理器:

 
yum update -y

 

安装node.js :


yum install nodejs -y

如果系统提示你输入密钥,请输入Y以继续。

确保安装成功:

 
node -v
npm -v

 

基本文件类型约定

所有Node.js文件都必须以.js结尾,例如,一个简单的二次求解器可以称为Quadratic.js ,话虽如此,只要满足第一个要求,你就可以任意命名。

API

编程语言通常有API可用,而且Node.js也不例外,如果你忘记或需要查找函数(或方法)的语法,请查看Node.js文档。

注意:如前所述,Node.js具有不断更新的代码库,因此,此处的函数可能不再适用于更高版本。

创建你的第一个程序

Hello ,World!

在本节中,我们会学习你可以创建的最基本的程序,首先,到/~或/root ,创建第一个项目,就像创建一个JS文件一样简单:

 
nano HelloWorld.js

 

在你最喜欢的文本编辑器中,输入以下内容:


// For reference, comments are made using '//' added before or after a line. Comments are ignored by the Node.js interpreter.
console.log("Hello, world!"); // console.log() simply outputs text to the terminal.

退出并保存。

现在,启动你的程序:

 
node HelloWorld.js

 

你将看到以下输出:


[root@test-server ~]# node HelloWorld.js
Hello, world!

简单数学变量

在本节中,我们会学习如何执行基本的数学运算,首先,再次到/root目录,创建一个名为MathTest.js的文件:

nano MathTest.js 

将下面的代码粘贴到文件中:


var a = 5; // Variables are declared using 'var variableName = value'. The value can be a string, integer, boolean value (ie. true/false) or an object. 
var b = 10;
var c ="Hello, world!";

console.log(c); // This line will output the contents of variable c.
console.log("a =" + a +", b =" + b); // This line prints out the respective values for a & b.
console.log("a + b =" + (a + b)); // This line prints out the result of (a + b) or (5 + 10). The result should be 15.

保存并退出。

执行MathTest.js程序时,你会看到以下内容:


[root@test-server ~]# node MathTest.js
Hello, world!
a = 5, b = 10
a + b = 15

启动我们的第一个Web服务器

在本节中,我们会学习如何启动Node.js web服务器,首先,创建一个名为WebTest.js的文件:

 
nano WebTest.js

 

粘贴下面的代码:


 // This line includes the HTTP module. Having it included allows us to use it's methods and functions to start a working webserver.
var http = require("http");
var a = 5, b = 10; 

http.createServer(function (request, response) {
 // This will simply output"Request received!" to your terminal when you visit your page.
 console.log("Request received!");

 // This line tells your browser that it should be expecting HTML content to be returned.
 response.writeHead(200, {'Content-Type': 'text/html'}); 

 // The following line adds"Hello, world! a + b = 15" to the body. The <i></i> tags will italicize the text. 
 response.write("<i>Hello, world! a + b =" + (a + b) +"</i>"); 

 // Finally, we'll tell the browser that we're done sending data with 'response.end()' below.
 response.end(); 
}).listen(8080);

保存文件后,运行你的新程序:


[root@test-server ~]# node WebTest.js

现在访问http://(YOUR_SERVER_IP):8080,确保正确配置了防火墙以允许请求。

你会在你的终端上看到Request received,并在浏览器中看到以下内容:!


Hello, world! a + b = 15

注:要关闭(shut down)WebTest.js,请使用以下键组合: CTRL +C。

了解了一些基本知识后,接下来的部分会介绍使用npm安装的第三方模块。

安装第三方模块并在程序中使用它

在本节中,我们会扩展第一个"Hello ,world"程序,首先,我们会安装一个名为colo ,这个包允许我们在终端上使用颜色。

首先,我们会使用npm来安装软件包:


npm i colo 

作为参考你可以使用npm remove colo删除该包

流程完成后,你就可以访问colo包了,现在,打开HelloWorld.js之后,在顶部添加以下行:


var colour = require("colo");

在这里看到console.log(...),用括号封装"你好,世界",在括号的开头,添加colour.red.bold


console.log(colour.red.bold("Hello, world!"));

最后的代码将如下所示:


var colour = require("colo");
console.log(colour.red.bold("Hello, world!"));

保存,退出和运行你的程序,输出会与之前完全相同,除了"Hello ,world",现在,在你的终端中是红色的(粗体),

最后备注

恭喜,你完成了所有的基本程序,希望你不要到此为止,你还可以使用node ,js做许多其他事情!

如果发现Node.js不是你想要的语言,则删除它,就像下面这样简单:


yum remove nodejs -y

Yanyan profile image