如何在Node.js中构建基本的Web服务器

自从十年前首次发布以来,Node.js已成为服务器端开发的最受欢迎的选择之一。与PHP和其他后端技术相比,它仍然相对较新,但已被LinkedIn,PayPal,Netflix等技术巨头广泛采用。

本文将教您如何使用Node.js和Express.js Web框架构建和运行自己的Web服务器。

涉及的技术和包装

Node.js是基于Chrome V8引擎构建的JavaScript运行时,可让您在浏览器外部执行JavaScript代码。传统上,JavaScript编程语言用于处理文档对象模型(DOM) ,从而增加网站的交互性。

因此,由于DOM仅存在于网页上,因此JavaScript代码被限制只能在浏览器中运行。使用Node.js,您可以在命令行和服务器上运行JavaScript。因此,在开始之前,必须在计算机上安装Node.js和npm

另一方面,Express.js是一个简约的Web框架,已成为Node.js的事实上的后端框架。但是,Express.js不是必需的。您仍然可以使用Node.js的内置http模块来构建服务器。 Express.js构建在http模块的顶部,并提供具有所有必需配置的更简单的API。

建立一个Web服务器

为了更好地组织代码,您可以先创建一个文件夹,其中存放所有文件和依赖项。由于Express.js不是内置的Node.js模块,因此您必须使用npm进行安装。

阅读更多:什么是npm?

要安装Express.js软件包,在终端或命令提示符下运行命令npm install express 。在安装之前,请确保您位于项目目录中。

完成后,您可以使用所选的文本编辑器或IDE打开文件夹,并创建一个名为server.js的新文件。要使用Express.js包,您必须首先在server.js文件中导入并创建一个实例,如下所示:

 const express = require('express');
const app = express();

Web服务器的主要目的是使用适当的处理程序功能来响应来自不同路由的请求。此代码处理对根( “ /” )路径发出的所有GET请求,并以“ Hello World!”响应。

 app.get('/', (req, res) => {
res.send('<h1>Hello World</h1>');
});

同样,您可以显示动态内容并执行其他操作,具体取决于路径和发出的请求的类型。可以使用路由参数来完成此操作,在参数前面用分号表示。

 app.get('/:name', (req, res) => {
res.send(`<h1>Welcome to ${req.params.name}!</h1>`);
};

在以上两个示例中,第一行均表示Express.js的.get()方法的用法,该方法带有两个参数:端点或路由,以及以请求和响应对象作为参数的回调处理函数。发出请求时,这两个参数会自动发送。

在第二行中,通过.send()方法对响应对象进行响应。在括号内,您可以输入所需的任何文本或HTML。对于动态路由,访问请求对象的req.params.name (因为您已经使用/:name )将返回动态路由参数的值(在这种情况下为name )。

最后,要开始侦听端口上的传入请求,可以使用.listen()方法,该方法获取端口号和可选的回调函数,以在成功执行时运行。

 app.listen(5000, console.log('Server is running on port 5000'));

在示例中,我使用了端口5000,但是您可以将其更改为任何有效的端口。这就是使用Node.js和Express.js构建基本Web服务器所需的全部代码。可以将同一概念进一步扩展,以向其他路由发出其他请求,例如POSTPUTDELETE 。这是server.js文件的样子:

Web服务器的ExpressJS代码

测试服务器

要执行代码并启动服务器,请在终端上或项目目录中的命令提示符处运行node server命令。这将执行您在.listen()方法上提供的回调函数。

要确认服务器是否正常运行,请打开Web浏览器并访问http:// localhost:5000。

同样,如果您访问诸如http:// localhost:5000 / muo之类的动态路由,第二个处理程序函数将运行并显示:

要停止服务器,请在Windows上按Ctrl + C或在macOS上按Cmd +C

Node.js可以做更多的事情

随着开发人员在前端和后端都使用JavaScript,JavaScript的受欢迎程度正急剧上升。这消除了学习多种编程语言的需要,并帮助您开始仅使用JavaScript的全栈Web开发人员的旅程。

如果您决定愿意使用Google的编程语言,那么构建一个基本的Web服务器是一个很好的入门项目。