node . js怎么搭建WEB服务器

  介绍

这篇文章主要介绍节点。js怎么搭建WEB服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强>简单例子

首先,从搭建最简单的<代码> Hello world 开始,建立以下目录,文件和内容。

建立项目及运行

项目

WEB -   +,|,安康;server.js

服务器。js

const  http =,要求(& # 39;http # 39;);      http.createServer(函数(请求,响应),{   ,//设置响应头   ,response.writeHeader (200, {   “才能Content-Type",:,“文本/plain"   ,});   ,//响应主体为,“Hello 世界!“   ,response.write (“Hello 世界!“);   ,response.end ();   })//,设置监听端口为9000   .listen (9000),

现在,在项目目录运行下面命令来执行服务器。js,浏览器地址栏中输入localhost: 9000年,如果一切访问都正常,浏览器就会显示Hello world !.

<代码>节点服务器。js代码

提示:使用ctrl + c停止脚本运行。

至此一个简单例子就运行成功了,下面来分析一下代码。

<强>代码分析

首先,服务器。js中引入了节点。js的http模块,它提供了非常底层http API支持。这里使用createServer()方法,它返回一个http。服务器实例,使用该实例的听()方法来设置监听端口。

方法createSever()中填写的参数是一个函数,该函数会作为回调函数自动添加到请求事件去,其参数类型分别为http。IncomingMessage和http。ServerResponse。在回调函数体里,利用http。ServerResponse的方法设置了响应头和响应主体,最后以结束()方法结束本次请求。

<>强路由功能

上述的例子仅仅实现了简单请求响应功能,现在增加路由的功能来健壮我们的WEB服务器。现在,修改为以下的目录,文件和内容。

<>强实现简单路由

项目

WEB -   ,|安康;server.js   +,|,安康;router.js

服务器。js

const  http =,要求(& # 39;http # 39;);   const  router =,要求(& # 39;。/router.js& # 39;);      function  handleHello(请求,响应),{   ,//设置响应头   ,response.writeHeader (200, {   “才能Content-Type",:,“文本/plain"   ,});   ,//响应主体为,“Hello 世界!“   ,response.write (“Hello 世界!“);   ,response.end ();   }      http.createServer(函数(请求,响应),{   ,//注册路径和其对应回调函数   ,router.register(请求,响应,(   {才能   ,,& # 39;url # 39;:, & # 39;/你好# 39;   ,,& # 39;处理程序# 39;:handleHello   ,,}   ,]);   })//,设置监听端口为9000   .listen (9000),

路由器。js

const  url =,要求(& # 39;url # 39;);      时间=exports.register 函数(请求,响应,映射),{   ,//解析请求路径   ,var  pathName =, url.parse (request.url) .pathname;   ,//执行相应请求路径的回调函数   ,(let 小姐:=,0,,len =, mapping.length;小姐:& lt;, len;我+ +),{   如果才能(映射[我].url ===,路径名),{   ,,映射[我].handler(请求,响应);   ,才能回报;   ,,}   ,}   ,//请求路径不存在返回404页面   ,response.writeHeader (404, {   “才能Content-Type",:,“文本/html"   ,});   ,response.end ('   & lt;才能html>   ,,& lt; head>   ,,,& lt; title> NOT  FOUND   ,,& lt;/head>   ,,& lt; body>   ,,,& lt; h2> 404年,NOT  FOUND   ,,& lt;/body>   & lt;才能/html>   ,');   }

现在,再次执行服务器。js脚本,接着浏览器访问localhost: 9000 \你好会得到hello world !的结果,而访问其他路径则会得到404页面。

这个功能的核心实现是在路由器。js中,通过请求路径的解析,然后根据预先注册好数的映射组,找到与之对应的路径并执行相应的回调函数。

<强>静态资源请求

当前的路由功能只能实现回调函数的执行,而一个WEB服务器应具有响应静态资源请求的能力,接下我们继续来改造它。现在,保持服务器。js内容不变,只改变路由器。js中的内容(部分代码内容省略)。

路线。js

const  url =,要求(& # 39;url # 39;);   const  path =,要求(& # 39;path & # 39;);   const  fs =,要求(& # 39;fs # 39;);      function  getErrorInfo (errorType), {   ,//省略代码   }      function  writeErrorPage(反应,errorType), {   ,//省略代码   }      时间=exports.register 函数(请求,响应,映射),{   ,//解析请求路径   ,var  pathName =, url.parse (request.url) .pathname;   ,//执行相应请求路径的回调函数   ,(let 小姐:=,0,,len =, mapping.length;小姐:& lt;, len;我+ +),{   如果才能(映射[我].url ===,路径名),{   ,,映射[我].handler(请求,响应);   ,才能回报;   ,,}   ,}   ,//请求路径为文件返回文件内容   ,var  file =, path.resolve (__dirname, & # 39;强生# 39;,+,路径名);   ,fs.exists(文件,函数(的存在),{//才能,请求路径不存在返回404页面   如果才能存在(!),{   ,,writeErrorPage(响应,& # 39;NOT_FOUND& # 39;);   ,,}   else {才能   ,,var  stat =, fs.statSync(文件);//,,,请求路径为目录返回403页面   ,,如果(stat.isDirectory ()), {   null   null   null   null   null   null   null   null   null   null   null   null   null

node . js怎么搭建WEB服务器