使用node构建web服务器,nodejs搭建静态资源服务器
如何使用Node.js构建静态Web服务器?下面这篇文章就教你如何使用Node.js搭建静态Web服务器,希望对你有所帮助!
node.js速度课程简介:进入学习
一、动静态服务器的概念
1.1 静态Web服务器概念
我们通常称之为静态Web服务器静态网站。它的主要特点是服务器上的内容都是现成的,不需要后端做额外的处理。当我们向静态服务器发送网页请求时,服务器只需要根据我们的请求路径(URL)返回相应的html文件。
对应静态网站的是我们最常见的动态Web服务器。这种服务器最大的特点是所有资源通常不是以html形式存储,而是需要后端查询数据,在组成一个网页后返回给用户。每个用户看到的内容可能不同。比如在Java搭建的Web服务器中,我们可以使用JSP来拼接网页,形成用户特定的页面。
1.2 静态Web服务器的优点
由于静态服务器不需要后端数据库,所以结构非常简单,非常适合文档管理、博客等场景。就博客本身而言,我认为静态网站有以下几个特点:
所需服务器配置低,最基本的服务器就能满足大部分人的性能需求;
响应速度快,内容是现成的html,直接访问即可得到结果;
一个html对应一个url,内容稳定,容易被搜索引擎搜索到;
很容易制作。您只需要在构建服务器后防止文件出现在指定的位置。
以上都是针对静态博客系统的。如果用纯静态的服务器来做其他类型的大型网站,可能成本很高。
1.3 快速搭建的途径
如果个人想快速搭建一个静态服务器,可以使用基于Node.js的http-server包,可以在一分钟内完成服务器的搭建。步骤如下:
下载http-server包,并记住全局安装它。
Npi http-server-g进入服务器文件夹并启动服务器。
Http-server -a 127.0.0.1 -p 9999以便启动服务器,根目录是启动服务器命令的目录。
您可以通过访问localhost:9999来查看所有文件。以下是我的文件内容:
如果我们点击文件名,我们将得到相应的文件。例如,如果我们点击*。html,我们可以得到网页:
它看起来像一个FTP服务器。我们就此打住好吗?
不会的,一个合格的程序员只有手到擒来才会开心!
二、 手撸指南
2.1 框架搭建
我们使用Node.js的基本内置模块就可以完成构造,不需要安装额外的工具包。
主要工作是创建具有以下结构的服务器目录:
web_server///根目录
-静态/
- css/
-style.css//style
- js/
-common.js//js
-index.js//主页
- app.js //服务器文件
-mime.json//扩展配置
2.2 Ctrl+C/V
app.js
const http=require( http );const fs=require( fs )const URL=require( URL )const path=require( path )file mimes=JSON . parse(fs . read file sync(。/mime . JSON’)。toString())http . create server(function(req,res) {
//1.得到地址
let pathname=url.parse(req.url)。路径名
pathname=pathname==/?/index . html :pathname let extname=path . extname(pathname)
//2.fs读取文件
if(路径名!=/favicon.ico) {
fs.readFile(。/static 路径名,async (err,data)={
如果(错误){
res.writeHead(404,{ Content-Type : text/html;charset=utf-8 })
资源结束(错误消息)
返回
}
如果(!呃){
//3.为不同的文件返回不同的内容头
let mime=FileMimes[extname]
res.writeHead(200,{ Content-Type :mime);charset=utf-8 })
资源结束(数据)
}
})
}}).听(8081);console.log(服务器运行在http://127 . 0 . 0 . 1:8081/);mime.json
{ 323 : text/h323 ,
. 3gp :视频/3gpp 。aab :应用程序/x-authoware-bin 。 aam :应用程序/x-授权软件映射, aas :应用程序/x-authoware-seg 。acx :应用程序/互联网-属性-流,ai :应用程序/附言,aif :音频/x-aiff 。aifc :音频/x-aiff 。aiff :音频/x-aiff 。als :音频/X-Alpha5 。amc :应用程序/x-mpeg ,
.//实在太长,就不贴这里了,文末有完整代码}
2.3 启动服务器
节点/app.js启动效果如下:
PS E:\ Code \ Node \ demos \ 03-static _ web _ server节点. js \ app . js
运行于http://127.0.0.1的服务器:8081/访问本地主机:8081即可得到index.html页面。
2.4 部署服务器(简单过程)
也可以部署到远端的服务器
1. 买服务器
当前流行的服务器提供商包括
-腾讯云
-阿里云
-华为云
不过现在程序员也来凑热闹了:CSDN云,CSDN好像是基于腾讯云的,价格上都差不多。
2. 买域名(非必须,可以使用IP直接访问)3. 网站备案4. 部署
静态网站的部署也非常简单,由于很少出错,而且需要经常启停上传新的博客文件,所以直接复制文件到服务器,然后使用
节点/app.js就可以了。
三、总结
基于节点。射流研究…的静态服务器搭建非常简单,我们可以使用http-服务器包,也可以基于结节手写代码。
手写代码最核心的内容是mime.json文件,也就是对于不同的文件类型,赋予反应不同的返回头。
文章结束
下面是mime.json代码(老长了):
{。323 :文本/h323 。3gp :视频/3gpp 。 aab :应用程序/x-authoware-bin 。 aam :应用程序/x-授权软件映射, aas :应用程序/x-authoware-seg 。acx :应用程序/互联网-属性-流,ai :应用程序/附言,aif :音频/x-aiff 。aifc :音频/x-aiff 。aiff :音频/x-aiff 。als :音频/X-Alpha5 。amc :应用程序/x-mpeg 。 ani :应用程序/八位字节流,apk :应用程序/vnd。安卓。包-存档。asc :文本/普通,asd :应用/惊喜,asf :视频/x-ms-asf 。提前装运通知:应用/惊喜,asp“:”应用程序/x-asap 。asr :视频/x-ms-asf 。asx :视频/x-ms-asf 。au :音频/基本,avb :应用程序/八位字节流,avi:video/x-msvideo 。 awb :音频/amr-wb 。axs :应用程序/olescript 。低音“:”文本/普通, bcpio :应用程序/x-bcpio 。bin :应用程序/八位字节流,建筑:应用程序/bld 。 bld2 :应用程序/bld2 。bmp :图像/bmp 。bpk :应用程序/八位字节流,bz2 :应用程序/x-bzip2 。c :文本/普通,cal :图像/x-cal 。类别:应用程序/vnd。ms-PKI seccat 。 ccn :应用程序/x-cnc 。cco :应用/x-cocoa 。 cdf :应用程序/x-cdf 。cer :应用程序/x-x509-ca-cert 。cgi :马格纳斯-内部/cgi 。聊天:应用程序/x-chat 。类:应用程序/八位字节流,CLP :应用程序/x-m剪辑。cmx :图像/x-cmx 。co :应用程序/x-cult 3d-对象,cod :图像/顺式编码,会议:文本/普通,cpio :应用程序/x-cpio 。cpp :文本/普通, cpt :应用程序/mac-compactpro 。 crd :应用程序/x-mscardfile 。crl :应用程序/pkix-crl 。crt :应用程序/x-x509-ca-cert 。csh :应用程序/x-csh 。csm :化学/x-csml 。csml“:”化学/x-csml 。 css:text/css 。 cur :应用程序/八位字节流,dcm:x-lml/x-evm 。dcr :应用程序/x-director 。dcx :图像/x-dcx 。der :应用程序/x-x509-ca-cert 。dhtml“:”文本/html 。目录:应用程序/x-director 。dll:application/x-msdownload 。dmg :应用程序/八位字节流,dms :应用程序/八位字节流,doc:application/msword 。docx :应用程序/vnd。openxml格式-office文档。wordprocessingml。文档。点:应用程序/msword 。dvi :应用程序/x-dvi 。 dwf :图纸/x-dwf 。图纸:应用程序/x-autocad 。 dxf :应用程序/x-autocad 。 dxr :应用程序/x-director 。 ebk :应用程序/x-扩展书, emb :化学/x-embl-dl-核苷酸, embl :化学/x-embl-dl-核苷酸,每股收益:应用程序/附言,epub :应用程序/epub zip 。eri :图像/x-eri 。 es :音频/回声语音,esl :音频/回声语音,etc :应用程序/x-地球时间,etx:text/x-setext 。evm:x-lml/x-evm 。 evy :申请/特使,应用程序/八位流,fh4 :图像/x手绘,fh5 :图像/x手绘,fhc :图像/x手绘, fif :应用/分形,flr:x-world/x-vrml 。flv : flv-应用程序/八位字节流,调频:应用程序/x-maker 。fpx :图像/x-fpx 。fvi :视频/isivideo 。高:化学/x-高斯输入,gca :应用程序/x-GCA-压缩,gdb:x-lml/x-gdb 。 gif:image/gif 。gps :应用程序/x-gps 。gtar :应用程序/x-gtar 。广州:应用程序/x-gzip 。h :文本/普通, hdf :应用程序/x-hdf 。 hdm:text/x-hdml 。 hdml:text/x-hdml 。hlp :应用程序/winhlp 。hqx :应用程序/mac-binhex40 。 hta :应用程序/hta 。htc :文本/x组件, htm :文本/html 。html“:”文本/html 。hts :文本/html 。 htt:text/webviewhtml 。ice:x-conference/x-cooltalk 。ico :图像/x形图标,ief :图像/ief 。ifm:image/gif 。如果:图像/ifs 。三:应用程序/x-iphone 。我的:音频/旋律,ins :应用程序/x-internet-注册,ips:application/x-ipscript 。ipx :应用程序/x-ipix 。isp :应用程序/x-internet-注册,它:音频/x-mod 。itz :音频/x-mod 。ivr:i-world/i-vrml 。j2k :图像/j2k 。jad :文本/vnd。星期日J2ME。应用描述符。堵塞:应用程序/x堵塞,罐子“:”应用程序/java-archive 。java“:”文本/普通,jfif :图像/管道,jnlp“:”应用程序/x-Java-jnlp-文件,jpe :图像/jpeg 。jpeg :图像/jpeg 。jpg :图像/jpeg 。jpz :图像/jpeg 。js :应用程序/x-javascript 。jwc :应用程序/jwc 。 kjx :应用程序/x-kjx 。lak:x-lml/x-lak 。乳胶:应用程序/x-latex 。lcc :应用程序/fastman 。 lcl :应用程序/x-digitalloca 。lcr :应用/x-digitalloca 。lgh :应用程序/lgh 。lha :应用程序/八位字节流, lml:x-lml/x-lml 。 lmlpack:x-lml/x-lmlpack 。日志:文本/普通, lsf :视频/x-la-asf 。lsx :视频/x-la-asf 。 lzh :应用程序/八位字节流,m13 :应用程序/x-msmediaview 。m14 :应用程序/x-msmediaview 。m15 :音频/x-mod 。m3u :音频/x-mpegurl 。m3url :音频/x-mpegurl 。m4a :音频/mp4a-latm 。 m4b :音频/mp4a-latm 。m4p :音频/mp4a-latm 。m4u:video/vnd.mpegurl 。m4v :视频/x-m4v 。ma1 :音频/ma1 。ma2 :音频/ma2 。ma3 :音频/ma3 。ma5 :音频/ma5 。男人:应用程序/x-troff-man 。map:magnus-internal/imagemap 。 mbd :应用程序/mblet 。" mct ":"应用程序/x-mascot”。mdb:application/x-msaccess 。 mdz :音频/x-mod 。我:应用程序/x-troff-me 。 mel:text/x-vmel 。 mht :消息/rfc822 。mhtml“:”消息/rfc822 。 mi :应用程序/x-mif 。中间:音频/mid 。midi :音频/midi 。 mif :应用程序/x-mif 。密耳:图像/x校准, mio :音频/x-mio 。mmf :应用/x-skt-lbs 。 mng :视频/x-mng 。 mny :应用程序/x-msmoney 。 moc :应用程序/x-摩卡。摩卡:应用/x-摩卡,mod :音频/x-mod 。财政部:应用程序/x-yumekara 。摩尔:化学/x-mdl-molfile 。拖把:化学/x-mopac-输入,视频/quicktime 。电影:视频/x-SGI-电影,mp2 :视频/mpeg 。mp3 :音频/mpeg 。mp4 :视频/mp4 。" mpa ":"视频/mpeg”。MPC :应用程序/vnd。霍恩议员。证书。mpe :视频/mpeg 。mpeg :视频/mpeg 。视频/mpeg 。 mpg4 :视频/mp4 。mpga :音频/mpeg 。MPN :应用程序/vnd。拖把hun。申请。mpp :应用程序/vnd。女士-项目,议员:应用程序/x-mapserver 。mpv2:视频/mpeg 。mrl :文本/x-mrml 。mrm :应用程序/x-mrm 。ms :应用程序/x-troff-ms 。msg :应用程序/vnd。ms-outlook 。 mts :应用程序/元流,mtx :应用程序/元流,mtz :应用程序/元流,mvb :应用程序/x-msmediaview 。 mzv :应用程序/元流,nar :应用程序/zip 。 nbmp :图像/nbmp 。nc :应用程序/x-netcdf 。ndb:x-lml/x-ndb 。 ndwn :应用程序/ndwn 。 nif :应用程序/x-nif 。 nmz :应用程序/x-scream 。诺基亚-op-logo : image/vnd。 NOK-op徽标-颜色。npx :应用程序/x-netfpx 。nsnd :音频/nsnd 。阿女:应用/x-neva1 。nws :消息/rfc822 。官方发展援助:应用/oda 。奥格:音频/ogg 。 oom :应用程序/x-地图集-插件,p10 :应用程序/pkcs10 。p12 :应用程序/x-pkcs12 。p7b :应用程序/x-pkcs 7-证书,p7c :应用程序/x-pkcs7-mime 。p7m :应用程序/x-pkcs7-mime 。p7r :应用程序/x-pkcs 7-certreqresp 。p7s :应用程序/x-pkcs 7-签名,包装:音频/x-pac 。 pae :音频/x-epac 。平移:应用程序/x-pan 。pbm:image/x-portable-bitmap 。 pcx:image/x-pcx 。pda :图像/x-pda 。pdb :化学/x-pdb 。pdf :应用程序/pdf 。pfr :应用程序/font-tdpfr 。pfx :应用程序/x-pkcs12 。 pgm:image/x-portable-graymap 。 pict:image/x-pict 。pko :应用程序/ynd。ms-PKI pko 。下午“:”应用程序/x-perl 。pma :应用程序/x-perfmon 。pmc :应用程序/x-perfmon 。pmd :应用程序/x-pmd 。pml :应用程序/x-perfmon 。pmr :应用程序/x-perfmon 。pmw :应用程序/x-perfmon 。png :图像/png 。 pnm:image/x-portable-anymap 。pnz :图像/png 。pot,: application/vnd.ms-powerpoint 。ppm :图像/x-便携-像素图,PPS :应用/vnd。ms-PowerPoint 。PPT :应用程序/vnd。ms-PowerPoint 。pptx :应用程序/vnd。openxml格式-office文档。演示文稿ml。演示。 pqf :应用程序/x-cprplayer 。pqi :应用程序/cprplayer 。中国:应用程序/x-中国,prf :应用程序/图片-规则,道具:文本/普通,代理:应用程序/x-ns-代理-自动配置,ps :应用程序/附言,ptlk :应用程序/listenup 。发布:应用程序/x-mspublisher 。pvx :视频/x-pv-pvx 。qcp:audio/vnd.qcelp 。qt :视频/quicktime 。qti :图像/x-quicktime 。qtif“:”图像/x-quicktime 。r3t:text/vnd.rn-realtext3d 。拉:音频/x-pn-realaudio 。内存“:”音频/x-pn-realaudio 。rar :应用程序/八位流,ras :图像/x-CMU-光栅,rc :文本/普通,rdf :应用程序/rdf xml 。rf:image/vnd.rn-realflash 。rgb :图像/x-rgb 。rlf :应用程序/x-richlink 。rm :音频/x-pn-realaudio 。rmf :音频/x-rmf 。rmi :音频/mid 。rmm :音频/x-pn-realaudio 。rmvb“:”音频/x-pn-realaudio 。rnx :应用程序/vnd。rn-真实玩家。 roff :应用程序/x-troff 。rp:image/vnd.rn-realpix 。rpm :音频/x-pn-真实音频-插件。rt:text/vnd.rn-realtext 。rte:x-lml/x-gps 。rtf :应用程序/rtf 。rtg :应用程序/元流,rtx:text/richtext 。rv:video/vnd.rn-realvideo 。rwc :应用程序/x-rogerwilco 。s3m :音频/x-mod 。s3z :音频/x-mod 。sca :应用程序/x-超级卡,scd“:”应用程序/x-msschedule 。sct:text/scriptlet 。sdf :申请/电子分数,海洋:应用程序/x-stuffit 。setpay :申请/设置-支付-启动,setreg“:”应用程序/设置-注册-启动, sgm:text/x-sgml 。 sgml:text/x-sgml 。sh :应用程序/x-sh 。shar :应用程序/x-shar 。shtml : magnus-internal/parsed-html 。 shw :应用/演示,si6 :图像/si6 。si7:image/vnd.stiwap.sis 。si9:image/vnd.lgtwap.sis 。sis :应用程序/vnd。Symbian。安装。坐:应用程序/x-stuffit 。skd :应用程序/x-Koan 。skm :应用程序/x-Koan 。skp :应用程序/x-Koan 。 skt :应用程序/x-Koan 。slc :应用程序/x-salsa 。smd :音频/x-smd 。smi :应用程序/smil 。 smil :应用程序/smil 。smp :应用程序/工作室,smz :音频/x-smd 。snd :音频/基本,spc :应用程序/x-pkcs 7-证书,spl :应用/未来闪烁,春天:应用程序/x-sprite 。精灵:应用程序/x-sprite 。sdp :应用程序/sdp 。 spt :应用程序/x-spt 。src :应用程序/x-wais-源,SST :应用程序/vnd。ms-PKI证书存储。 stk :应用程序/超级工作室,STL :应用程序/vnd。ms-PKI STL 。 stm :文本/html 。svg :图像/svg xml 。sv4cpio :应用程序/x-sv4cpio 。sv4crc :应用程序/x-sv4crc 。 svf:image/vnd 。svg :图像/svg xml 。svh :图像/svh 。SVR : x-世界/x-svr 。主权财富基金“:”应用程序/x-冲击波-闪光。 swfl :应用程序/x-冲击波-闪光。t :应用程序/x-troff 。 tad :应用程序/八位字节流,说话:文本/x-语音,焦油:应用程序/x-tar 。“taz”:应用程序/x-tar 。 tbp :应用程序/x-廷巴克图, tbt :应用/x-廷巴克图,tcl :应用程序/x-tcl 。tex :应用程序/x-tex 。texi :应用程序/x-texinfo 。纹理信息:应用程序/x-texinfo 。 tgz :应用程序/x压缩, thm:application/vnd.eri.thm 。 tif:image/tiff 。 tiff :图像/tiff 。tki :应用程序/x-tkined 。tkined“:”应用程序/x-tkined 。目录:应用程序/目录,玩具:图像/玩具,tr :应用程序/x-troff 。trk:x-lml/x-gps 。 trm :应用程序/x-ms终端,tsi :音频/ts播放器,tsp :应用程序一茶匙的量类型,tsv :文本/制表符分隔值,ttf :应用程序/八位字节流,ttz :应用/t时间,文本/普通,uls :文本/iuls 。 ult :音频/x-mod 。ustar :应用程序/x-ustar 。uu :应用程序/x-uuencode 。 uue :应用程序/x-uuencode 。vcd :应用程序/x-cdlink 。vcf :文本/x-vcard 。视频/视频显示:vib :音频/vib 。 viv :视频/vivo 。vivo :视频/vivo 。vmd“:”应用/vocaltec-媒体-desc。vmf“:”应用程序/vocaltec-媒体-文件,vmi :应用程序/x-dreamcast-vms-info 。虚拟机“:”应用程序/x-dreamcast-vms 。 vox :音频/voxware 。vqe :音频/x-双胞胎VQ-插件,vqf :音频/x-twinvq 。vql :音频/x-twinvq 。vre : x-世界/x-vream 。VRML : x-世界/x-vrml 。虚拟现实: x世界/x虚拟现实,vrw : x-世界/x-vream 。vts :工作簿/配方一, wav :音频/x-wav 。蜡:音频/x-ms-wax 。wbmp:image/vnd.wap.wbmp 。wcm:application/vnd.ms-works 。wdb:application/vnd.ms-works 。web:application/vnd.xara 。工作指令:图像/小波, wis :应用程序/x-InstallShield 。wks:application/vnd.ms-works 。wm :视频/x-ms-wm 。wma :音频/x-ms-wma 。wmd:application/x-ms-wmd 。wmf:application/x-msmetafile 。 wml:text/vnd.wap.wml 。wmlc :应用程序/vnd。WAP。wmlc 。wmls:text/vnd.wap.wmlscript 。wml sc :应用程序/vnd。WAP。wml脚本c 。wml脚本: text/vnd。WAP。wml脚本。wmv :音频/x-ms-wmv 。wmx“:”视频/x-ms-wmx 。wmz :应用程序/x-ms-wmz 。 wpng :图像/x-up-wpng 。wps:application/vnd.ms-works 。 wpt:x-lml/x-gps 。wri :应用程序/x-mswrite 。 wrl:x-world/x-vrml 。 wrz:x-world/x-vrml 。ws:text/vnd.wap.wmlscript 。WSC :应用程序/vnd。WAP。wml脚本c 。"视频/小波",wvx :视频/x-ms-wvx 。 wxl :应用程序/x-wxl 。x-gzip :应用程序/x-gzip 。xaf:x-world/x-vrml 。xar:application/vnd.xara 。xbm:image/x-xbitmap 。xdm :应用程序/x-xdma 。xdma :应用程序/x-xdma 。xdw :应用程序/vnd。富士施乐。docu works 。 xht :应用程序/xhtml xml 。xhtml“:”应用程序/xhtml xml 。xhtml“:”应用程序/xhtml xml 。xla:application/vnd.ms-excel 。xlc:application/vnd.ms-excel 。xll :应用程序/x-excel 。xlm:application/vnd.ms-excel 。xls:application/vnd.ms-excel 。xlsx :应用程序/vnd。openxml格式-office文档。电子表格ml。工作表。xlt:application/vnd.ms-excel 。xlw:application/vnd.ms-excel 。xm :音频/x-mod 。xml“:”文本/普通,xml“:”应用程序/xml 。xmz :音频/x-mod 。xof:x-world/x-vrml 。xpi:application/x-xpinstall 。xpm:image/x-xpixmap 。xsit:text/xml 。xsl“:”文本/xml 。 xul:text/xul 。 xwd:image/x-xwindowdump 。xyz :化学/x-pdb 。 yz1 :应用程序/x-yz1 。z :应用程序/x压缩,扎克:应用程序/x-zaurus-zac 。zip :应用程序/zip 。json :应用程序/json}更多结节相关知识,请访问:节点射流研究…教程!以上就是聊聊怎么使用节点。射流研究…搭建一个静态网服务器的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。