首页 > 编程语言 >用Node.js搭建一个简单Web服务器

用Node.js搭建一个简单Web服务器

时间:2023-08-07 11:34:22浏览次数:45  
标签:Node Web http JavaScript js 服务器


Node.js是基于Chrome V8引擎的JavaScript运行时环境,它允许我们在服务器端运行JavaScript代码,这让我们可以用JavaScript构建Web服务器,处理请求和响应。我们一起探索了如何用Node.js搭建一个简单但强大的Web服务器!

什么是Nodejs

在搭建Web服务器之前,先让我们了解一下今天的主角Nodejs

公众号:Code程序人生,个人网站:https://creatorblog.cn

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者使用JavaScript语言在服务器端运行代码。传统上,JavaScript主要是用于在浏览器中实现交互和动态效果,但Node.js的出现使得JavaScript可以在服务器端实现诸如文件操作、网络通信、数据库访问等功能,让JavaScript成为一种通用的脚本语言。

Node.js的特点和优势包括:

  1. 非阻塞式I/O操作Node.js采用了单线程、非阻塞式的事件驱动模型,使得它在处理高并发请求时表现出色,可以高效地处理大量的I/O操作,如文件读写和网络请求。
  2. 轻量高效Node.js运行在V8引擎上,它的设计目标是轻量和高效,可以快速地处理请求,因此非常适合构建实时性要求较高的应用,比如聊天应用、实时游戏等。
  3. 跨平台Node.js可以在多个平台上运行,包括WindowsmacOSLinux等,使得开发者可以更加灵活地部署和运行应用程序。
  4. 丰富的包管理器Node.js使用npm(Node Package Manager)作为其包管理工具,拥有大量开源的模块和库,开发者可以轻松地复用别人的代码,提高开发效率。
  5. 活跃的社区Node.js拥有庞大的开发者社区,社区成员不断贡献新的模块和工具,保持着Node.js生态系统的活力。

Node.js广泛应用于Web开发、服务器端应用、后端API的构建、实时通信、物联网和微服务等领域。它的出现和发展为前端和后端开发带来了更多的可能性,并且成为了现代Web开发的重要组成部分。

总的来说,Node.js是一个强大、高效且灵活的JavaScript运行时环境,它为开发者提供了一种前所未有的方式来构建服务器端应用和实时性要求较高的应用,让JavaScript真正实现了"一次编写,随处运行"。

搭建准备工作

  1. 安装Node.js:如果你还没有安装Node.js,请前往官方网站(https://nodejs.org/)下载并安装稳定版本。(个人建议安装16版本)

安装完成后,可以打开命令行输入node -v验证一下是否安装成功。

用Node.js搭建一个简单Web服务器_服务器

如果你看到形如上面的内容,说明你Nodejs没安装好。

大概率是环境变量没配置,如果你下载的是最新的稳定版本,理论上它会自己帮你配置环境变量,如果你下载的老版本,可能需要自己配置,可以自己去看一下系统的环境变量Path

用Node.js搭建一个简单Web服务器_前端_02

很明显确实没有,那就找一下你Nodejs的安装目录。

用Node.js搭建一个简单Web服务器_服务器端_03

复制安装目录所在路径,然后添加到环境变量Path中。

用Node.js搭建一个简单Web服务器_前端_04

然后咔咔点确定,再去命令行验证一下。

用Node.js搭建一个简单Web服务器_Web_05

这就很对了。

  1. 创建项目文件夹:在你的工作目录中,创建一个新的文件夹,我们可以称之为:“server”。并在文件夹内新建我们的入口文件index.js

用Node.js搭建一个简单Web服务器_服务器端_06

编写代码

接下来,让我们来编写Node.js代码。我们将使用内置的http模块来搭建Web服务器。在我们的项目文件夹的入口文件index.js中添加以下代码:

// 引入http模块
const http = require('http');

// 创建服务器
const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
    res.end('Hello,我的Web服务器运行起来了!');
});

// 监听端口
const port = 3000;
server.listen(port, '127.0.0.1', () => {
    console.log(`Web服务器运行: http://localhost:${port}/`);
});

让我们简单解释一下上面的代码:

  1. 我们首先引入了http模块,它是Node.js的核心模块,用于处理HTTP请求和响应。
  2. 然后,我们使用http.createServer()方法创建一个Web服务器。这个方法接受一个回调函数,该函数在每次收到请求时都会被调用。
  3. 在回调函数中,我们使用res.writeHead()方法设置响应头,状态码为200,内容类型为"text/html", 编码格式是utf-8, 如果我们返回给客户端的内容存在中文,就需要额外设置utf-8的编码集,否则会乱码。
  4. 接着,我们使用res.end()方法发送响应内容给客户端,这里我们简单地发送了一条问候信息。
  5. 最后,我们使用server.listen()方法监听3000端口,当服务器启动后,在控制台打印一条消息表示服务器已经运行。

运行Web服务器

现在,让我们来运行我们的小小Web服务器吧!在终端或命令提示符窗口中,进入"server"文件夹,并运行以下命令:

node index.js

如果一切顺利,你将会在控制台看到输出:Web服务器运行: http://localhost:3000/

用Node.js搭建一个简单Web服务器_服务器端_07

试一试

现在,打开你喜欢的浏览器,并在地址栏中输入http://localhost:3000/ ,然后按下回车。你将会看到浏览器显示出我们设置的返回内容:“Hello,我的Web服务器运行起来了!”。

你现在已经成功搭建了一个简单的Web服务器,可以处理HTTP请求和发送响应了!

用Node.js搭建一个简单Web服务器_node.js_08

总结

通过本文,你已经学会了用Node.js搭建一个简单的Web服务器,实现了一个小小的功能。当然,这只是Node.js的冰山一角,你可以做更多更酷的事情!希望这篇文章能够给你带来一些启发和乐趣,继续探索Node.js的世界吧!


标签:Node,Web,http,JavaScript,js,服务器
From: https://blog.51cto.com/u_15295488/6991962

相关文章

  • js:使用LetterAvatar通过canvas实现浏览器中生成字母头像
    实现效果LetterAvatar的原理就是利用了浏览器对象canvas在线体验:https://mouday.github.io/tools/pages/letter-avatar/index.htmlLetterAvatar.js完整代码/**LetterAvatar**ArturHeinze*CreateLetteravatarbasedonInitials*basedonhttps://gist.github.co......
  • 天翼云重磅升级边缘WAF能力,助力企业高效应对Web安全威胁!
    “2022年,网络高危漏洞数量同比增长了13%;Q2遭受攻击的API数量月均超过了25万;物联网的普及大大降低了DDoS的攻击成本,大流量攻击指数显著提升;恶意Bot流量仍在持续增长,2022年上半年Bot流量约占整体互联网流量的60%,平均每月达到110亿+,而其中具备恶意攻击性的Bot流量占比则高达46%............
  • Nodejs安装教程
    1.下载地址下载地址:https://nodejs.org/zh-cn/download/,根据自己需求选择下载  2.安装1.双击安装包,一直点击【下一步】2.点击change按钮,更换到自己的指定安装位置,点击【下一步】3.一直点击【下一步】,最后安装成功即可3.配置环境变量Node.js安装完成后,我们需要设置环境......
  • 基于NodeJS游戏交流社区系统的设计与实现
    随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。游戏交流社区系统,主要的模块包括查看首页、个人中心、用户管理、游戏类型管理、游戏信息管理、游戏攻略管理、交流论坛、系统管理等功能。系统中管理员主要是为了安全有......
  • node js 目录操作
    一、创建目录1、语法以下为创建目录的语法格式:fs.mkdir(path[,options],callback)2、参数参数使用说明如下:path -文件路径。options参数可以是:recursive -是否以递归的方式创建目录,默认为false。mode -设置目录权限,默认为0777。callback -回调函......
  • 软件测试-Web端测试方法总结
    一、输入框1.字符型输入框1)输入框格式校验英文全角、英文半角、数字、空或者空格、特殊字符“……!@#¥%……&*({【《,。?、:;‘<>’》】})”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。知识点扩展:全角/半角全角:一个字符占用两个标准字符位置半角:一个......
  • Nodejs 第四章(Npm install 原理)
    在执行npminstall的时候发生了什么?首先安装的依赖都会存放在根目录的node_modules,默认采用扁平化的方式安装,并且排序规则.bin第一个然后@系列,再然后按照首字母排序abcd等,并且使用的算法是广度优先遍历,在遍历依赖树时,npm会首先处理项目根目录下的依赖,然后逐层处理每个依赖包的依......
  • Nodejs 第五章(Npm run 原理)
    npmrunxxx发生了什么按照下面的例子npmrundev举例过程中发生了什么读取packagejson的scripts对应的脚本命令(dev:vite),vite是个可执行脚本,他的查找规则是:先从当前项目的node_modules/.bin去查找可执行命令vite如果没找到就去全局的node_modules去找可执行命令vite如果还......
  • Nodejs 第六章(npx)
    npx是什么npx是一个命令行工具,它是npm5.2.0版本中新增的功能。它允许用户在不安装全局包的情况下,运行已安装在本地项目中的包或者远程仓库中的包。npx的作用是在命令行中运行node包中的可执行文件,而不需要全局安装这些包。这可以使开发人员更轻松地管理包的依赖关系,并且可以避免全......
  • Nodejs 第七章(发布npm包)
    发布npm的包的好处是什么方便团队或者跨团队共享代码,使用npm包就可以方便的管理,并且还可以进行版本控制做开源造轮子必备技术,否则你做完的轮子如何让别人使用难道是U盘拷贝?面试题我面字节的时候就问到了这个增加个人IP让更多的人知道你的技术能力和贡献发布前准备工作npmadduser......