使用node.js构建一个web服务器(适合自学)

article/2025/11/9 5:37:37

使用node.js构建一个web服务器

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。

WEB服务器

WEB服务器也称为WWW服务器。WWW(World Wide Web、翻译成中文:万维网或环球信息网)服务器的基本功能就是提供Web信息浏览服务。Web服务器可以向Web浏览器等客户端提供文档,也可以放置网站文件,让全世界浏览,更可以放置数据文件,让全世界下载。

常见的Web服务器软件有Apache、Internet信息服务器(Internet Information Services,IIS)等。

Apache服务器:Apache服务器是一款开源免费的服务器软件,几乎可以在所以有的计算机平台上运行,由于Apache是开源,因此所有人都可以参与开发新功能,并且不断对Apache服务器进行完善。Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上(即支持多平台)。其属于应用服务器。

IIS服务器:IIS服务器是微软的服务器,可允许IIS在公共Intranet或Internet上发布相信的Web服务器。IIS只能在微软公司的windows操作系统下使用。

不依赖前面提到的Web服务软件,使用Node.js 也能搭建Web服务器。

Node.js是什么?

简单地说,Node.js 是一种开源且跨平台的服务器端 JavaScript 运行时环境,并可以让 JavaScript 做后端。

在Windows 上安装 Node.js

要使用Node.js 需要安装之。

要使用Node.js 需要安装之。先到nodejs官网 Node.js 或到中文网站下载 | Node.js 中文网  下载

LTS代表“长期支持”,建议大多数用户使用这种版本。我下载的是node-v14.18.1-x64.msi

双击下载后的安装包 直接安装就可以了,可以自定义路径。安装时会自动配置环境变量(默认自动将安装路径添加path环境变量)。为了照顾新手,下面详细演示安装过程。

双击下载后的安装包 安装,如下所示

点击Next按钮,将出现如下界面:

 勾选接受协议可选项,点击 next 按钮 ,将出现如下界面:

 Node.js默认安装目录为 "C:\Program Files\nodejs\" ,可以修改目录(我修改了盘符D),然后点击 next按钮,将出现如下界面:

你可以点击树形图标节点来选择你需要的安装模式 , 在此保持默认不变,点击下一步 next按钮,将出现如下界面:

如果要安装工具来编译本机模块,请单击复选框。通常,不需要安装这些工具,因此不必选中此框,点击next按钮,将出现如下界面:

单击Install(安装)按钮开始安装Node.js,将出现如下界面:

请稍等一会,将出现如下界面:

 此时,单击Finish(完成)按钮退出设置向导。

安装完后的目录如下图所示:

你将看到目录中有npm.cmd,它是什么?

安装Node.js时将同时自动安装npm,它是node包(模块)管理工具,能解决Node.js代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,Window 系统使用以下命令即可:

npm install npm -g

使用npm包管理工具安装第三方库(npm包),有两种安装方式:全局安装和局部安装:

从敲的命令行来看,差别只是有没有-g而已,如

npm install X      # 局部(本地)安装,则是将模块下载到当前命令行所在目录。可能会遇到 “'X' 不是内部或外部命令,也不是可运行的程序”错误。

npm install X -g   # 全局安装,可以直接在命令行里使用。

【npm 、cnpm常用命令及.npmrc配置文件详解

npm 、cnpm常用命令及.npmrc配置文件详解_cnds123的专栏-CSDN博客 】

检查是否正确安装了Node.js和npm

win+r打开运行,输入cmd后进入命令行界面。然后输入node -v和npm -v命令进行node的版本号和npm的版本号的查看。参见下图:

 正确显示了版本号,OK!

使用node.js构建一个简单的web服务器

在你项目的目录(这里以D:\测试文件夹为例)中创建一个叫myServer.js 的文件,并写入以下代码:

var http = require('http');
http.createServer(function (request, response) {// 发送 HTTP 头部// HTTP 状态值: 200 : OK// 内容类型: text/plain。并用charset=UTF-8解决输出中文乱码response.writeHead(200, {'Content-Type': 'text/plain; charset=UTF-8'});// 下句是发送响应数据response.end('Hello World! 这是简单的web服务器测试。\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

说明:其中var http = require("http"); 使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http。

编写了.js的程序,运行的时候就要通过node.js来运行了,在CMD中先切换到编写程序的目录下,然后用node XXX.js即可启动服务,若不先切换路径,则用node 路径\XXX.js启动服务。然后在浏览器中输入相应的监听IP地址加上端口号,这里的端口号使用比较大一点的就可以,因为是回环测试,所以使用127.0.0.1来作为测试IP。

使用 node D:\测试文件夹\myServer.js,参见下图:

简单例子运行成功了,这其实是用node.js搭建了一个服务器,然后来监听端口的访问事件,最后做出相应的回应,需要指出的是,当我们关闭CMD或按CTRL+C键之后服务就关闭了。

现在,打开浏览器访问 http://127.0.0.1:8888/,你会看如下的网页:

成功了!

网页与服务器之间的数据交互示例

现在通过一个简单的示例,演示网页与服务器之间的数据交互的实现。

这个例子有两部分:服务器代码和网页代码

服务器代码如下:

//require表示引包,引包就是引用自己的一个特殊功能var http = require("http");var url = require("url");var server = http.createServer(function(req,res){//得到查询部分,由于写了true,那么就是一个对象var queryObj = url.parse(req.url,true).query;var name = queryObj.name;var age = queryObj.age;var sex = queryObj.sex;res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});res.end("服务器收到了表单请求" + name + age + sex);});//运行服务器,监听3000端口(端口号可以任改)server.listen(3000,"127.0.0.1");// 终端打印如下信息console.log('Server running at http://127.0.0.1:3000/')

保存文件名为server2.js ,项目的目录(这里以D:\测试文件夹为例)中

使用 node D:\测试文件夹\Server2.js运行:

网页代码如下:

<!DOCTYPE html><html ><head><meta charset="UTF-8"><title>与服务端交互网页</title></head><body><form action="http://127.0.0.1:3000/" method="GET">姓名:<input type="text" name="name" /> <br />年龄:<input type="text" name="age" /> <br /><input type="radio" name="sex" value="男"/> 男<input type="radio" name="sex" value="女"/> 女<br /><input type="submit"></form></body></html>

保存文件名为 与服务端交互示例.html ,用浏览器运行:

特别说明,示例比较简单,特别是后端对数据的处理进行了简化,在实际应用系统中后端一般使用数据库保存数据,这样做主要是让新手有一个直观易懂的感性了解,让初学者有个总体概观,便于快速入门,有了这些,深入学习就有了基础。

Node.js 新手入门 https://blog.csdn.net/cnds123/article/details/104559497

Nodejs操作MySql数据库详解 https://blog.csdn.net/cnds123/article/details/106210965


http://chatgpt.dhexx.cn/article/SsJomVYp.shtml

相关文章

node-php-server 游戏服务器框架

做游戏服务器8年多了&#xff0c;用过lua, 用过C, 用过nodejs ,最近用的是php,有些人会说php不是用在web开发吗&#xff0c;怎么能用在游戏服务器的业务逻辑开发&#xff0c;php 怎么跟客户端通信&#xff0c;肯定有很多人不解。 其实很多时候&#xff0c;技术原理都是都是相通…

如何快速用node在本地搭建一个服务器

众所周知&#xff0c;服务器是通过安装特殊的软件&#xff08;或者运行特殊的代码&#xff09;来提供网络服务的机器。那么我们的电脑可不可以弄成一个服务器&#xff0c;来供他人访问呢&#xff1f; 答案是可以的&#xff0c;这里我们需要安装一下node.js这个软件。传送门&am…

通过node启动服务器必须的会的几个命令

1 首先通过cd 目录 切换到当前目录下 2 通过node app.js 启动服务器(或者nodemon apo.js) 3 通过ctrl c来关闭服务器&#xff01;

用node.js搭建自己的服务器

前提要点&#xff1a; 1、首先让我们了解一下什么是服务器和客户端吧&#xff01; 服务器是提供网络服务的机器&#xff0c;通过安装特殊的软件&#xff08;或者是运行某段特殊的代码&#xff09;来提供服务。 客户端与服务器&#xff1a;提供服务的是服务器&#xff0c;享受服…

将node项目部署到云服务器详细教程 原创

前言&#xff1a; 需要有node项目&#xff0c;并且能在本地服务器成功运行成功 一、购买云服务器 云服务器种类很多&#xff0c;价格都差不多&#xff0c;我这里购买的是ecs计算型云服务器&#xff0c;配置2核4G5M的配置基本就可以运行项目。 服务器购买我选择的是ecs计算型…

node服务器项目部署 - (电影网站)

查看更多资源 一、域名解析 1.登录 阿里云 -> 域名解析 - > 域名 指向 二、本地文件启动端口 movie-server/app.js 增加var env process.env.NODE_ENV || development //获取当前环境变量 如没有 就为 开发模式var dbUrl mongodb://imooc_movie_runner:F**k9001$1…

linux(centOS)下搭建node服务器之一、 安装Node.js

本例系统环境&#xff1a;腾讯云 CentOS 7.4 64位 一、找相应node版本&#xff0c;复制链接 1. 打开网址 http://nodejs.cn/download/; 2. ctrlshifti(打开开发者工具) 如图&#xff1a; 二、登录腾讯云服务器&#xff0c;进入系统界面 三、用命令行下载node到服务器、解压文件…

使用node服务器简单启动本地项目

目录 一、使用node启动本地web服务器 1、使用express 1&#xff09;项目安装express 2&#xff09;app.js关键代码如下 3&#xff09;启动服务 4&#xff09;打开浏览器访问相应地址即可看到项目 2、使用 http-server 1&#xff09;全局安装http-server 2&#xff09…

启动第一个node服务器

创建一个文件夹&#xff0c;建一个server.js文件,安装完node环境 var http require(http);var server http.createServer(function (req, res) {res.writeHead(200, {Content-Type: text/plain});res.end(Hello World\n); })server.listen(1337,127.0.0.1); console.log(Ser…

React 项目搭建与部署,搭建Node服务器

环境配置与项目搭建 安装node&#xff0c;官网 直接下载安装webpack &#xff1a; npm install -g webpack 安装淘宝镜像(可选)&#xff1a; npm install -g cnpm --registryhttps://registry.npm.taobao.org 安装create-react-app&#xff1a; cnpm install -g create-react-a…

node服务器支持https请求

node服务器支持https请求 水文一篇 问题 前段时间给自己的域名接入了https&#xff0c;但是前端向后端发起请求的时候报了这么一个错误 net::ERR_SSL_PROTOCOL_ERROR意思是https的请求不能向http服务器发起&#xff0c;所以&#xff0c;我们要把node服务加上ssl 操作 con…

node 进入网站服务器,node怎么启动服务器?

node启动服务器的方法&#xff1a;创建一个文件夹&#xff0c;新建一个server.js文件&#xff0c;文件代码中写入服务器的域名地址&#xff0c;然后在命令行执行命令node server.js就启动服务器了&#xff0c;打开浏览器访问服务器域名就可以看到server文件输出的内容了。 node…

如何立即关闭 Node 服务器?

我有一个包含 http服务器的 Node.js 应用程序&#xff0c;在特定情况下&#xff0c;我需要以编程方式关闭此服务器。 const http require(http);const server http.createServer((req, res) > {res.end(); }); server.on(clientError, (err, socket) > {socket.end(HTT…

在Node服务器中运行html文件

两个页面具有相同的协议&#xff08;protocol&#xff09;&#xff0c;主机&#xff08;host&#xff09;和端口号&#xff08;port&#xff09;才是同源&#xff08;即指在同一个域&#xff09;&#xff0c;当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同…

node 如何搭建服务器

1、安装node 查看node版本:node -v 2、创建node项目: 创建文件夹app cmd /app&#xff1a;npm init -y 初始化node项目 3、运行node文件 1、 cmd /app: node index.js 另一种运行方式 2、 packge.json&#xff1a; 配置: “serve”:“node index.js”, npm run serve 运…

Node服务器开发

目录 一、Node.js网站服务器 1、创建Node.js网站服务器 二、HTTP协议 1、HTTP的请求消息和响应消息 2、请求消息 ​ 3、响应信息 三、HTTP请求与响应处理 1、Get请求参数 2、 Post请求参数 一个完整的网站应用程序主要由客户端和服务器端两大部分组成。我们可以将服务器理…

常用网址记录

记录一些常用的网址 1&#xff0c;svn下载网站 http://tortoisesvn.net/ myeclipse svn插件地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 2&#xff0c;JDK下载网站 http://www.oracle.com/technetwork/java/javaee/downloads/index.html ht…

常用网址及博客

前站导航 网址集合 https://www.frontendjs.com/ jq插件库 各种有意思的代码&#xff08;不是jq插件&#xff0c;迷惑为啥这名字&#xff09; https://www.jq22.com/webinfo4 即时工具 免费的在线工具箱 https://www.67tool.com/ Swiper Demos https://swiperjs.com/…

常用网址导航推荐

作为一个程序员在工作开发中可能会遇到各种问题&#xff0c;需要各种问题解决&#xff0c;各种搜索资料一般都是穿梭在百度必应360等等各种导航之间&#xff0c; 所以需要一个好的网址导航作为浏览器主页&#xff0c;所以今天就给大家推荐几个不错的的导航网站 NO1.小不点导航…

安卓界面尺寸规范

移动界面尺寸&#xff01;安卓720*1280界面尺寸规范参考 移动App界面设计尺寸视觉规范 分辨率状态栏导航栏PPI720 x 1280720 x 50720 x 96320 移动应用界面设计的尺寸设置及规范 安卓 尺寸规范 - 百度文库.html 安卓设计尺寸规范 安卓720_1280界面尺寸规范参考 - 25学堂.html …