如何用nodejs搭建web服务器

2020-11-29 14:14:36 字数 5358 阅读 9890

1楼:育知同创教育

使用node.js搭建web服务器是学习node.js比较全面的入门教程,因为实现web服务器需要用到几个比较重要的模块:

http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的web服务器。

作为一个web服务器应具备以下几个功能:

1、能显示以.html/.htm结尾的web页面

2、能直接打开以.js/.css/.json/.text结尾的文件内容

3、显示**资源

5、形如http://***.***/a/b/ , 则查找b目录下是否有index.html,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。

6、形如http://***.***/a/b, 则作301重定向到http://***.***/a/b/ , 这样可以解决内部资源引用错位的问题。

引入需要用到的几个模块:

//http协议模块varhttp = require('http');//url解析模块varurl = require('url');//文件系统模块varfs = require("fs");//路径解析模块varpath = require("path");创建服务并在指定的端口监听:

//创建一个服务varhttpserver = http.createserver(this.processrequest.

bind(this));//在指定的端口监听服务httpserver.listen(port,function());

在创建服务的时候需要传递一个匿名函数processrequest 对请求进行处理,processrequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应操作。

processrequest:function(request,response));response.end();return;}//添加默认的访问页面,但这个页面不一定存在,后面会处理pathname +="index.

html";ha***t =false;//标记默认页面是程序自动添加的}//获取资源文件的相对路径varfilepath = path.join("http/webroot",pathname);//获取对应文件的文档类型varcontenttype =this.getcontenttype(filepath);//如果文件名存在fs.

exists(filepath,function(exists));varstream = fs.createreadstream(filepath,);stream.on("error", function() );response.

end("");});//返回文件内容stream.pipe(response);}else);response.end("");}else}catch(e)response.

writehead(200, );response.end(html);}}});}

请求处理函数中有几个重点需要说一下:

对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,

当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到

如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

核心**就这么多,大概140行左右,完整的**已上传到github:https://github.***/git-onepixel/node,

如果要运行demo,打开cmd切换到根目录,运行node start 即可。

如何用nodejs搭建web服务器

2楼:匿名用户

主要解决两个问题,1是静态资源的处理,2是动态资源的路由。

静态资源在node.js里的意思是不变的,如**、前端js、css、html页面等。

动态资源我们一般指aspx页面,ashx页面,asp页面,jsp页面,php页面等,而node.js里其实没动态资源这一说,它对请求的处理都是由**方法完成的,在我实现的httserver里,借鉴了ashx的写法,把处理请求的js文件看作动态资源。

首先实现一个处理静态资源的函数,其实就是对本地文件的读取操作,这个方法已满足了上面说的静态资源的处理。

如何用nodejs搭建web服务器

3楼:育知同创教育

引入需要用到的几个模块:

//http协议模块

var http = require('http');

//url解析模块

var url = require('url');

//文件系统模块

var fs = require("fs");

//路径解析模块

var path = require("path");

创建服务并在指定的端口监听:

//创建一个服务

var httpserver = http.createserver(this.processrequest.bind(this));

//在指定的端口监听服务

httpserver.listen(port,function());

在创建服务的时候需要传递一个匿名函数processrequest 对请求进行处理,processrequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应操作。

processrequest:function(request,response));

response.end();

}//添加默认的访问页面,但这个页面不一定存在,后面会处理

pathname += "index.html";

ha***t = false; //标记默认页面是程序自动添加的

}//获取资源文件的相对路径

var filepath = path.join("http/webroot",pathname);

//获取对应文件的文档类型

var contenttype = this.getcontenttype(filepath);

//如果文件名存在

fs.exists(filepath,function(exists));

var stream = fs.createreadstream(filepath,);

stream.on("error", function() );

response.end("");

});//返回文件内容

stream.pipe(response);

}else );

response.end("");

}else

}catch (e)

response.writehead(200, );

response.end(html);}}

});},

如何使用nodejs快速搭建本地服务器

4楼:育知同创教育

如果电脑没有安装nodejs的同学可以先到node官方**并安装好node程序。 安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!

安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere 以上两个步骤都就绪以...

如何使用nodejs快速搭建本地服务器

5楼:育知同创教育

方法/步骤

1如果电脑没有安装nodejs的同学可以先到node官方**并安装好node程序。

安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!

2安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere ,然后等待直到出现以下界面。

3以上两个步骤都就绪以后,万事俱备,只欠东风啦!在cmd页面 找到你想搭建服务器的路径,然后再当前路径下输入: anywhere 8860

然后浏览器就自动打开本地访问**,一个简单的node服务器就这样被我们搭建好啦!

如何使用nodejs快速搭建本地服务器

6楼:育知同创教育

安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!

安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere

在cmd页面 找到你想搭建服务器的路径

然后浏览器就自动打开本地访问**,一个简单的node服务器就这样被我们搭建好啦!

如何用python搭建一个最简单的web服务器

7楼:黑马程序员

用python建立最简单的web服务

器利用python自带的包可以建立简单的web服务器。在dos里cd到准备做服务器根目录的路径下,输入命令:

python -mweb服务器模块[端口号,默认8000]

例如:python -m ******httpserver 8080

然后就可以在浏览器中输入

http://localhost:端口号/路径

来访问服务器资源。

例如:http://localhost:8080/index.htm(当然index.htm文件得自己创建)

其他机器也可以通过服务器的ip地址来访问。

这里的“web服务器模块”有如下三种:

basehttpserver: 提供基本的web服务和处理器类,分别是httpserver和basehttprequesthandler。

******httpserver: 包含执行get和head请求的******httprequesthandler类。

cgihttpserver: 包含处理post请求和执行cgihttprequesthandler类。

nodejs当web服务器行不行

1楼 育知同创教育 可以呀使用node js搭建web服务器是学习node js比较全面的入门教程,因为实现web服务器需要用到几个比较重要的模块 http模块 文件系统 url解析模块 路径解析模块 以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的web服务器。 作为一个web服务器...

web服务器有那些种类?各有什么优缺点

1楼 匿名用户 服务器的种类和功能 1 www服务器 www server www服务器也称为web服务器 web server 或http服务器 http server ,它是inter 上最常见也是使用最频繁的 web服务器有哪些 2楼 皮蛋粯子粥 目前最主流的三个web服务器是apache n...

如何配置SSL服务器,服务器如何免费配置SSL证书

1楼 匿名用户 ssl安装教程 https gw ssl 127 html 条件 虚拟主机支持ssl cdn支持ssl 独立服务器。 wordpresss怎么在服务器配置ssl证书 2楼 匿名用户 wordpress是 程序,不是真正的服务器环境,根据不同的服务器环境安装。 ssl安装教程 http...