如何在 Linux 中编写您的第一个 Node.js 应用程序
在过去的几年里,Web 开发趋势发生了巨大的变化,作为一名 Web 开发人员,要想在游戏中处于领先地位,保持最新技术的更新非常重要。
JavaScript 是当前流行的编程语言;毫无疑问,它是全栈开发人员使用的最流行的技术。
JavaScript Web 框架已成为更快 Web 开发的神奇解决方案,具有绝对的效率、安全性和最小化的成本。我确信您听说过 Node JavaScript(通常称为 Node.js 或简称为 Node),并且有很多关于它的讨论在互联网上。
在本文中,我将向您展示如何开始在 Linux 中使用 Node.js 在 JavaScript 中开发应用程序。但首先,让我们简要介绍一下 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 服务器,例如 Nginx 或 Apache。
- 它通过 child_process.fork() API 支持线程,用于生成子进程,并且还提供集群模块。
有了这个简短的介绍,您一定渴望编写您的第一个 JavaScript 程序。但是,首先,您需要使用以下指南在 Linux 系统上安装 Node.js 和 NPM 软件包。
- 在 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/移动应用程序。请通过下面的评论部分分享您对本文的看法。