网站搜索

如何在 Linux 中编写您的第一个 Node.js 应用程序


在过去的几年里,Web 开发趋势发生了巨大的变化,作为一名 Web 开发人员,要想在游戏中处于领先地位,保持最新技术的更新非常重要。

JavaScript 是当前流行的编程语言;毫无疑问,它是全栈开发人员使用的最流行的技术。

JavaScript Web 框架已成为更快 Web 开发的神奇解决方案,具有绝对的效率、安全性和最小化的成本。我确信您听说过 Node JavaScript(通常称为 Node.js 或简称为 Node),并且有很多关于它的讨论在互联网上。

在本文中,我将向您展示如何开始在 Linux 中使用 Node.jsJavaScript 中开发应用程序。但首先,让我们简要介绍一下 Node.js

什么是 Node.js?

Node.js 是一个基于 Chrome V8 JavaScript 引擎构建的开源、轻量级且高效的 JavaScript 运行时。它的设计没有线程(单线程),并且具有与 Twisted 类似的实现,Twisted 是使用 Python 构建的网络引擎或 Event Machine(Ruby 程序的事件处理库)。

Node.js 的核心基于事件驱动编程;因此,程序员应该了解哪些事件可用以及如何响应它们。

Node.js 下的包管理

Node.js 使用JavaScript包管理器和名为“npm”的生态系统,其中包含大量免费开源库。它支持模块化软件开发。您可以使用它来安装节点包、共享、分发代码以及管理包依赖项。

为什么 Node.js 很重要?

Node.js 功能强大且非常重要,原因如下:

  • 它使用异步事件驱动、非阻塞 I/O 执行模型,可提高应用程序的吞吐量并支持实际 Web 应用程序的可扩展性。
  • 它是单线程的,因此在任何给定时间只能使用 1 个 CPU。
  • Node.js Web 应用程序是一个完整的 Web 服务器,例如 NginxApache
  • 它通过 child_process.fork() API 支持线程,用于生成子进程,并且还提供集群模块。

有了这个简短的介绍,您一定渴望编写您的第一个 JavaScript 程序。但是,首先,您需要使用以下指南在 Linux 系统上安装 Node.jsNPM 软件包。

  1. 在 Linux 系统中安装最新的 Nodejs 和 NPM 版本

如何在 Linux 中创建您的第一个 Node.js 应用程序

安装Node.js后,您就可以开始了。首先创建一个用于存储应用程序文件的目录。

sudo mkdir -p /var/www/myapp

然后进入该目录并为您的应用程序创建一个 package.json 文件。该文件可作为项目的小文档:项目名称、作者、它所依赖的包列表等等。

cd /var/www/myapp
npm init

这将询问您一些问题,只需按如下所述回答,然后按[Enter]。请注意,package.json 中最重要的内容是名称和版本字段,如下所述。

  • 包名称 – 您的应用程序名称,默认为目录名称。
  • 版本 – 您的应用程序的版本。
  • 描述 – 为您的应用编写简短的描述。
  • 入口点 – 设置要执行的默认包文件。
  • 测试命令 – 用于创建测试脚本(默认为空脚本)。
  • git 存储库 – 定义一个 Git 存储库(如果有的话)。
  • 关键字 – 设置关键字,这对于其他用户在 npm 上识别您的包很重要。
  • 作者 – 指定作者姓名,请在此处输入您的名字。
  • 许可证 – 为您的应用/包指定许可证。

接下来,创建一个 server.js 文件。

sudo vi server.js

将下面的代码复制并粘贴到其中。

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

接下来,使用以下命令启动您的应用程序。

node server.js
OR
npm start

接下来,打开 Web 浏览器并访问您的 Web 应用程序,该应用程序除了打印字符串 ”Hello world! 之外什么也不做。 ”,使用地址:

http://localhost:3333

在上面的代码中,正在处理的主要事件是通过 HTTP 模块 发出的 HTTP 请求。

Nodejs HTTP 模块

Node.js 中,模块更像是 JavaScript 库,它们包含可以在应用程序中重用的函数。您可以使用内置模块、三十方模块或创建您自己的模块。

要调用应用程序中的模块,请使用 require 函数,如图所示。

var http = require('http');

一旦包含 http 模块,它将创建一个侦听特定端口(本例中为 3333)的服务器。 http.creatServer 方法创建实际的 http 服务器,该服务器接受一个函数(当客户端尝试访问该应用程序时调用该函数)作为参数。

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);

http.createServer 中的函数有两个参数:req(request)res(response)req 参数是来自用户或客户端的请求,res 参数向客户端发送回复。

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

服务器启动后,代码的最后部分将输出发送到控制台。

console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Node.js 中的路由

在本节中,我将解释 Node.js 编程中最重要的概念之一,称为路由(类似于计算机网络下的路由:寻找流量路径的过程)在网络中)。

这里,路由是一种处理客户端请求的技术;提供客户端请求的内容(如 URL 中指定)。 URL 由路径和查询字符串组成。

要查看客户端的请求查询字符串,我们可以在响应中添加以下行。

res.write(req.url);
res.end()

以下是新代码。

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

保存文件并使用以下命令再次启动您的应用程序。

node server.js
OR
npm start

在 Web 浏览器中,键入不同的 URL,将显示如下所示的 URL。

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

现在,我们将为 Tecmint 创建一个非常小的网站,其中包含主页、关于页面和作者页面。我们将在这些页面上显示一些信息。

打开 server.js 文件进行编辑,并在其中添加以下代码。

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

在上面的代码中,我们了解了如何使用 // 字符在 Node.js 中编写注释,并介绍了用于路由客户端请求的 switch 和 case 语句。

保存文件,启动服务器并尝试访问各个页面。

现在就是这样!您可以在 Nodejs 和 NPM 网站上找到更多信息。

另请阅读:如何安装 PM2 以在 Linux 上运行 Node.js 应用程序

结论

Node.js 今天已升至新高,它使全栈开发变得比以前容易得多。它独特的事件驱动编程理念使您能够创建闪电般快速、高效且可扩展的 Web 流程和服务器。

接下来,我们将解释 Node.js 框架,该框架扩展了其本机功能,可以快速可靠地开发 Web/移动应用程序。请通过下面的评论部分分享您对本文的看法。