网站建设硬件方案,那个网站做的系统最好,网站换域名有没有影响吗,京东网站的建设与发展前景0、补充
1、Node.js 创建的第一个应用
1、引入 http 模块 var http require(http); 2、创建服务器 接下来我们使用 http.createServer() 方法创建服务器#xff0c;并使用 listen 方法绑定 3000 端口。 函数通过 request, response 参数来接收和响应数据。
co…0、补充
1、Node.js 创建的第一个应用
1、引入 http 模块 var http require(http); 2、创建服务器 接下来我们使用 http.createServer() 方法创建服务器并使用 listen 方法绑定 3000 端口。 函数通过 request, response 参数来接收和响应数据。
const http require(http);
http.createServer((req,res){ //状态码是 200文件类型是 html字符集是 utf-8 res.writeHead(200,{Content-type:text/html;charsetutf-8}); res.write(head meta charsetUTF-8/head); res.write(你好 nodejs); res.write(h2你好 nodejs/h2); res.end(); //结束响应
}).listen(3000);2、WEB 服务器介绍
Web 服务器一般指网站服务器是指驻留于因特网上某种类型计算机的程序可以向 浏览器等 Web 客户端提供文档也可以放置网站文件让全世界浏览还可以放置数据文件 让全世界下载。目前最主流的 Web 服务器有 Apache 、Nginx 、 IIS 等。
一、创建一个静态资源服务器
Nodejs 创建一个 WEB 服务器。 1、可以让我们访问 web 服务器上面的网站
2、可以让我们下载 web 服务器上面的文件
app.js:
// nodejs 创建一个静态资源服务器const http require(http);
const fs require(fs);
const path require(path)
const url require(url)
const common require(./module/common)http.createServer(function (req, res) {// 1. 获取地址console.log(req.url)let pathname url.parse(req.url).pathname// 默认加载index.htmlif(pathname /) {pathname /index.html}else {pathname pathname}// 获取路径中的后缀名let extname path.extname(pathname)// 2.通过fs模块读取文件if(pathname ! /favicon.ico) {fs.readFile(./static pathname, async function(err, data) {if(err) { res.writeHead(404, {Content-Type: text/html;charsetutf-8});res.end(404 这个页面不存在); }let mine await common.getFileMime(extname)res.writeHead(200, {Content-Type: mine;charsetutf-8});res.end(data);})}}).listen(8081);console.log(Server running at http://127.0.0.1:8081/);common.js:
exports.getFileMime function (extname) {switch (extname) {case .html:return text/html;case .css:return text/css;case .js:return text/javascript;default:return text/html;}
}const fs require(fs);exports.getFileMime function (extname) {return new Promise(function(resolve,reject) {fs.readFile(./data/mime.json, function(err, data) {if(err) {console.log(err)rejects(err)return}let mimeObj JSON.parse(data.toString())console.log(mimeObj[extname])resolve(mimeObj[extname])})})
}mime.json: { .323:text/h323 ,.3gp:video/3gpp ,.aab:application/x-authoware-bin ,.aam:application/x-authoware-map ,.aas:application/x-authoware-seg ,.acx:application/internet-property-stream ,.ai:application/postscript ,.aif:audio/x-aiff ,.aifc:audio/x-aiff ,.aiff:audio/x-aiff ,.als:audio/X-Alpha5 ,.amc:application/x-mpeg ,.ani:application/octet-stream ,.apk:application/vnd.android.package-archive ,.asc:text/plain ,.asd:application/astound ,.asf:video/x-ms-asf ,.asn:application/astound ,.asp:application/x-asap ,.asr:video/x-ms-asf ,.asx:video/x-ms-asf ,.au:audio/basic ,.avb:application/octet-stream ,.avi:video/x-msvideo ,.awb:audio/amr-wb ,.axs:application/olescript ,.bas:text/plain ,.bcpio:application/x-bcpio ,.bin :application/octet-stream ,.bld:application/bld ,.bld2:application/bld2 ,.bmp:image/bmp ,.bpk:application/octet-stream ,.bz2:application/x-bzip2 ,.c:text/plain ,.cal:image/x-cals ,.cat:application/vnd.ms-pkiseccat ,.ccn:application/x-cnc ,.cco:application/x-cocoa ,.cdf:application/x-cdf ,.cer:application/x-x509-ca-cert ,.cgi:magnus-internal/cgi ,.chat:application/x-chat ,.class:application/octet-stream ,.clp:application/x-msclip ,.cmx:image/x-cmx ,.co:application/x-cult3d-object ,.cod:image/cis-cod ,.conf:text/plain ,.cpio:application/x-cpio ,.cpp:text/plain ,.cpt:application/mac-compactpro ,.crd:application/x-mscardfile ,.crl:application/pkix-crl ,.crt:application/x-x509-ca-cert ,.csh:application/x-csh ,.csm:chemical/x-csml ,.csml:chemical/x-csml ,.css:text/css ,.cur:application/octet-stream ,.dcm:x-lml/x-evm ,.dcr:application/x-director ,.dcx:image/x-dcx ,.der:application/x-x509-ca-cert ,.dhtml:text/html ,.dir:application/x-director ,.dll:application/x-msdownload ,.dmg:application/octet-stream ,.dms:application/octet-stream ,.doc:application/msword ,.docx:application/vnd.openxmlformats-officedocument.wordprocessingml.document ,.dot:application/msword ,.dvi:application/x-dvi ,.dwf:drawing/x-dwf ,.dwg:application/x-autocad ,.dxf:application/x-autocad ,.dxr:application/x-director ,.ebk:application/x-expandedbook ,.emb:chemical/x-embl-dl-nucleotide ,.embl:chemical/x-embl-dl-nucleotide ,.eps:application/postscript ,.epub:application/epubzip ,.eri:image/x-eri ,.es:audio/echospeech ,.esl:audio/echospeech ,.etc:application/x-earthtime ,.etx:text/x-setext ,.evm:x-lml/x-evm ,.evy:application/envoy ,.exe:application/octet-stream ,.fh4:image/x-freehand ,.fh5:image/x-freehand ,.fhc:image/x-freehand ,.fif:application/fractals ,.flr:x-world/x-vrml ,.flv:flv-application/octet-stream ,.fm:application/x-maker ,.fpx:image/x-fpx ,.fvi:video/isivideo ,.gau:chemical/x-gaussian-input ,.gca:application/x-gca-compressed ,.gdb:x-lml/x-gdb ,.gif:image/gif ,.gps:application/x-gps ,.gtar:application/x-gtar ,.gz:application/x-gzip ,.h:text/plain ,.hdf:application/x-hdf ,.hdm:text/x-hdml ,.hdml:text/x-hdml ,.hlp:application/winhlp ,.hqx:application/mac-binhex40 ,.hta:application/hta ,.htc:text/x-component ,.htm:text/html ,.html:text/html ,.hts:text/html ,.htt:text/webviewhtml ,.ice:x-conference/x-cooltalk ,.ico:image/x-icon ,.ief:image/ief ,.ifm:image/gif ,.ifs:image/ifs ,.iii:application/x-iphone ,.imy:audio/melody ,.ins:application/x-internet-signup ,.ips:application/x-ipscript ,.ipx:application/x-ipix ,.isp:application/x-internet-signup ,.it:audio/x-mod ,.itz:audio/x-mod ,.ivr:i-world/i-vrml ,.j2k:image/j2k ,.jad:text/vnd.sun.j2me.app-descriptor ,.jam:application/x-jam ,.jar:application/java-archive ,.java:text/plain ,.jfif:image/pipeg ,.jnlp:application/x-java-jnlp-file ,.jpe:image/jpeg ,.jpeg:image/jpeg ,.jpg:image/jpeg ,.jpz:image/jpeg ,.js:application/x-javascript ,.jwc:application/jwc ,.kjx:application/x-kjx ,.lak:x-lml/x-lak ,.latex:application/x-latex ,.lcc:application/fastman ,.lcl:application/x-digitalloca ,.lcr:application/x-digitalloca ,.lgh:application/lgh ,.lha:application/octet-stream ,.lml:x-lml/x-lml ,.lmlpack:x-lml/x-lmlpack ,.log:text/plain ,.lsf:video/x-la-asf ,.lsx:video/x-la-asf ,.lzh:application/octet-stream ,.m13:application/x-msmediaview ,.m14:application/x-msmediaview ,.m15:audio/x-mod ,.m3u:audio/x-mpegurl ,.m3url:audio/x-mpegurl ,.m4a:audio/mp4a-latm ,.m4b:audio/mp4a-latm ,.m4p:audio/mp4a-latm ,.m4u:video/vnd.mpegurl ,.m4v:video/x-m4v ,.ma1:audio/ma1 ,.ma2:audio/ma2 ,.ma3:audio/ma3 ,.ma5:audio/ma5 ,.man:application/x-troff-man ,.map:magnus-internal/imagemap ,.mbd:application/mbedlet ,.mct:application/x-mascot ,.mdb:application/x-msaccess ,.mdz:audio/x-mod ,.me:application/x-troff-me ,.mel:text/x-vmel ,.mht:message/rfc822 ,.mhtml:message/rfc822 ,.mi:application/x-mif ,.mid:audio/mid ,.midi:audio/midi ,.mif:application/x-mif ,.mil:image/x-cals ,.mio:audio/x-mio ,.mmf:application/x-skt-lbs ,.mng:video/x-mng ,.mny:application/x-msmoney ,.moc:application/x-mocha ,.mocha:application/x-mocha ,.mod:audio/x-mod ,.mof:application/x-yumekara ,.mol:chemical/x-mdl-molfile ,.mop:chemical/x-mopac-input ,.mov:video/quicktime ,.movie:video/x-sgi-movie ,.mp2:video/mpeg ,.mp3:audio/mpeg ,.mp4:video/mp4 ,.mpa:video/mpeg ,.mpc:application/vnd.mpohun.certificate ,.mpe:video/mpeg ,.mpeg:video/mpeg ,.mpg:video/mpeg ,.mpg4:video/mp4 ,.mpga:audio/mpeg ,.mpn:application/vnd.mophun.application ,.mpp:application/vnd.ms-project ,.mps:application/x-mapserver ,.mpv2:video/mpeg ,.mrl:text/x-mrml ,.mrm:application/x-mrm ,.ms:application/x-troff-ms ,.msg:application/vnd.ms-outlook ,.mts:application/metastream ,.mtx:application/metastream ,.mtz:application/metastream ,.mvb:application/x-msmediaview ,.mzv:application/metastream ,.nar:application/zip ,.nbmp:image/nbmp ,.nc:application/x-netcdf ,.ndb:x-lml/x-ndb ,.ndwn:application/ndwn ,.nif:application/x-nif ,.nmz:application/x-scream ,.nokia-op-logo:image/vnd.nok-oplogo-color ,.npx:application/x-netfpx ,.nsnd:audio/nsnd ,.nva:application/x-neva1 ,.nws:message/rfc822 ,.oda:application/oda ,.ogg:audio/ogg ,.oom:application/x-AtlasMate-Plugin ,.p10:application/pkcs10 ,.p12:application/x-pkcs12 ,.p7b:application/x-pkcs7-certificates ,.p7c:application/x-pkcs7-mime ,.p7m:application/x-pkcs7-mime ,.p7r:application/x-pkcs7-certreqresp ,.p7s:application/x-pkcs7-signature ,.pac:audio/x-pac ,.pae:audio/x-epac ,.pan:application/x-pan ,.pbm:image/x-portable-bitmap ,.pcx:image/x-pcx ,.pda:image/x-pda ,.pdb:chemical/x-pdb ,.pdf:application/pdf ,.pfr:application/font-tdpfr ,.pfx:application/x-pkcs12 ,.pgm:image/x-portable-graymap ,.pict:image/x-pict ,.pko:application/ynd.ms-pkipko ,.pm:application/x-perl ,.pma:application/x-perfmon ,.pmc:application/x-perfmon ,.pmd:application/x-pmd ,.pml:application/x-perfmon ,.pmr:application/x-perfmon ,.pmw:application/x-perfmon ,.png:image/png ,.pnm:image/x-portable-anymap ,.pnz:image/png ,.pot,:application/vnd.ms-powerpoint ,.ppm:image/x-portable-pixmap ,.pps:application/vnd.ms-powerpoint ,.ppt:application/vnd.ms-powerpoint ,.pptx:application/vnd.openxmlformats-officedocument.presentationml.presentation ,.pqf:application/x-cprplayer ,.pqi:application/cprplayer ,.prc:application/x-prc ,.prf:application/pics-rules ,.prop:text/plain ,.proxy:application/x-ns-proxy-autoconfig ,.ps:application/postscript ,.ptlk:application/listenup ,.pub:application/x-mspublisher ,.pvx:video/x-pv-pvx ,.qcp:audio/vnd.qcelp ,.qt:video/quicktime ,.qti:image/x-quicktime ,.qtif:image/x-quicktime ,.r3t:text/vnd.rn-realtext3d ,.ra:audio/x-pn-realaudio ,.ram:audio/x-pn-realaudio ,.rar:application/octet-stream ,.ras:image/x-cmu-raster ,.rc:text/plain ,.rdf:application/rdfxml ,.rf:image/vnd.rn-realflash ,.rgb:image/x-rgb ,.rlf:application/x-richlink ,.rm:audio/x-pn-realaudio ,.rmf:audio/x-rmf ,.rmi:audio/mid ,.rmm:audio/x-pn-realaudio ,.rmvb:audio/x-pn-realaudio ,.rnx:application/vnd.rn-realplayer ,.roff:application/x-troff ,.rp:image/vnd.rn-realpix ,.rpm:audio/x-pn-realaudio-plugin ,.rt:text/vnd.rn-realtext ,.rte:x-lml/x-gps ,.rtf:application/rtf ,.rtg:application/metastream ,.rtx:text/richtext ,.rv:video/vnd.rn-realvideo ,.rwc:application/x-rogerwilco ,.s3m:audio/x-mod ,.s3z:audio/x-mod ,.sca:application/x-supercard ,.scd:application/x-msschedule ,.sct:text/scriptlet ,.sdf:application/e-score ,.sea:application/x-stuffit ,.setpay:application/set-payment-initiation ,.setreg:application/set-registration-initiation ,.sgm:text/x-sgml ,.sgml:text/x-sgml ,.sh:application/x-sh ,.shar:application/x-shar ,.shtml:magnus-internal/parsed-html ,.shw:application/presentations ,.si6:image/si6 ,.si7:image/vnd.stiwap.sis ,.si9:image/vnd.lgtwap.sis ,.sis:application/vnd.symbian.install ,.sit:application/x-stuffit ,.skd:application/x-Koan ,.skm:application/x-Koan ,.skp:application/x-Koan ,.skt:application/x-Koan ,.slc:application/x-salsa ,.smd:audio/x-smd ,.smi:application/smil ,.smil:application/smil ,.smp:application/studiom ,.smz:audio/x-smd ,.snd:audio/basic ,.spc:application/x-pkcs7-certificates ,.spl:application/futuresplash ,.spr:application/x-sprite ,.sprite:application/x-sprite ,.sdp:application/sdp ,.spt:application/x-spt ,.src:application/x-wais-source ,.sst:application/vnd.ms-pkicertstore ,.stk:application/hyperstudio ,.stl:application/vnd.ms-pkistl ,.stm:text/html ,.svg:image/svgxml ,.sv4cpio:application/x-sv4cpio ,.sv4crc:application/x-sv4crc ,.svf:image/vnd ,.svg:image/svgxml ,.svh:image/svh ,.svr:x-world/x-svr ,.swf:application/x-shockwave-flash ,.swfl:application/x-shockwave-flash ,.t:application/x-troff ,.tad:application/octet-stream ,.talk:text/x-speech ,.tar:application/x-tar ,.taz:application/x-tar ,.tbp:application/x-timbuktu ,.tbt:application/x-timbuktu ,.tcl:application/x-tcl ,.tex:application/x-tex ,.texi:application/x-texinfo ,.texinfo:application/x-texinfo ,.tgz:application/x-compressed ,.thm:application/vnd.eri.thm ,.tif:image/tiff ,.tiff:image/tiff ,.tki:application/x-tkined ,.tkined:application/x-tkined ,.toc:application/toc ,.toy:image/toy ,.tr:application/x-troff ,.trk:x-lml/x-gps ,.trm:application/x-msterminal ,.tsi:audio/tsplayer ,.tsp:application/dsptype ,.tsv:text/tab-separated-values ,.ttf:application/octet-stream ,.ttz:application/t-time ,.txt:text/plain ,.uls:text/iuls ,.ult:audio/x-mod ,.ustar:application/x-ustar ,.uu:application/x-uuencode ,.uue:application/x-uuencode ,.vcd:application/x-cdlink ,.vcf:text/x-vcard ,.vdo:video/vdo ,.vib:audio/vib ,.viv:video/vivo ,.vivo:video/vivo ,.vmd:application/vocaltec-media-desc ,.vmf:application/vocaltec-media-file ,.vmi:application/x-dreamcast-vms-info ,.vms:application/x-dreamcast-vms ,.vox:audio/voxware ,.vqe:audio/x-twinvq-plugin ,.vqf:audio/x-twinvq ,.vql:audio/x-twinvq ,.vre:x-world/x-vream ,.vrml:x-world/x-vrml ,.vrt:x-world/x-vrt ,.vrw:x-world/x-vream ,.vts:workbook/formulaone ,.wav:audio/x-wav ,.wax:audio/x-ms-wax ,.wbmp:image/vnd.wap.wbmp ,.wcm:application/vnd.ms-works ,.wdb:application/vnd.ms-works ,.web:application/vnd.xara ,.wi:image/wavelet ,.wis:application/x-InstallShield ,.wks:application/vnd.ms-works ,.wm:video/x-ms-wm ,.wma:audio/x-ms-wma ,.wmd:application/x-ms-wmd ,.wmf:application/x-msmetafile ,.wml:text/vnd.wap.wml ,.wmlc:application/vnd.wap.wmlc ,.wmls:text/vnd.wap.wmlscript ,.wmlsc:application/vnd.wap.wmlscriptc ,.wmlscript:text/vnd.wap.wmlscript ,.wmv:audio/x-ms-wmv ,.wmx:video/x-ms-wmx ,.wmz:application/x-ms-wmz ,.wpng:image/x-up-wpng ,.wps:application/vnd.ms-works ,.wpt:x-lml/x-gps ,.wri:application/x-mswrite ,.wrl:x-world/x-vrml ,.wrz:x-world/x-vrml ,.ws:text/vnd.wap.wmlscript ,.wsc:application/vnd.wap.wmlscriptc ,.wv:video/wavelet ,.wvx:video/x-ms-wvx ,.wxl:application/x-wxl ,.x-gzip:application/x-gzip ,.xaf:x-world/x-vrml ,.xar:application/vnd.xara ,.xbm:image/x-xbitmap ,.xdm:application/x-xdma ,.xdma:application/x-xdma ,.xdw:application/vnd.fujixerox.docuworks ,.xht:application/xhtmlxml ,.xhtm:application/xhtmlxml ,.xhtml:application/xhtmlxml ,.xla:application/vnd.ms-excel ,.xlc:application/vnd.ms-excel ,.xll:application/x-excel ,.xlm:application/vnd.ms-excel ,.xls:application/vnd.ms-excel ,.xlsx:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ,.xlt:application/vnd.ms-excel ,.xlw:application/vnd.ms-excel ,.xm:audio/x-mod ,.xml:text/plain,.xml:application/xml,.xmz:audio/x-mod ,.xof:x-world/x-vrml ,.xpi:application/x-xpinstall ,.xpm:image/x-xpixmap ,.xsit:text/xml ,.xsl:text/xml ,.xul:text/xul ,.xwd:image/x-xwindowdump ,.xyz:chemical/x-pdb ,.yz1:application/x-yz1 ,.z:application/x-compress ,.zac:application/x-zaurus-zac ,.zip:application/zip ,.json:application/json
} 二、Nodejs 封装静态 web 服务
对上面的静态资源服务进行封装:
routes.js : const http require(http);
const fs require(fs);
const path require(path)
const url require(url)let getFileMime function (extname) {return new Promise(function(resolve,reject) {fs.readFile(./data/mime.json, function(err, data) {if(err) {console.log(err)rejects(err)return}let mimeObj JSON.parse(data.toString())console.log(mimeObj[extname])resolve(mimeObj[extname])})})
}exports.static function(req, res, staticPath) {// 1. 获取地址console.log(req.url)let pathname url.parse(req.url).pathname// 默认加载index.htmlif(pathname /) {pathname /index.html}else {pathname pathname}// 获取路径中的后缀名let extname path.extname(pathname)// 2.通过fs模块读取文件if(pathname ! /favicon.ico) {fs.readFile(./ staticPath pathname, async function(err, data) {if(err) { res.writeHead(404, {Content-Type: text/html;charsetutf-8});res.end(404 这个页面不存在); }let mine await getFileMime(extname)res.writeHead(200, {Content-Type: mine;charsetutf-8});res.end(data);})}}app.js :
// nodejs 创建一个静态资源服务器const http require(http);
const routes require(./module/routes)http.createServer(function (req, res) {// 创建静态web服务器routes.static(req, res , static)}).listen(8081);console.log(Server running at http://127.0.0.1:8081/);三、 路由 官方解释 路由Routing是由一个 URI或者叫路径和一个特定的 HTTP 方法GET、POST 等组成 的涉及到应用如何响应客户端对某个网站节点的访问。 通俗的说 路由指的就是针对不同请求的 URL处理不同的业务逻辑。 在上面代码的基础上增加路由功能除此之外还需要把读取文件操作由异步改为同步
app.js :
// nodejs 创建一个静态资源服务器const http require(http);
const url require(url)
const routes require(./module/routes)http.createServer(function (req, res) {// 创建静态web服务器routes.static(req, res, static)// 路由let pathname url.parse(req.url).pathname;if (pathname /login) {res.writeHead(200, { Content-Type: text/html;charsetutf-8 });res.end(执行登录)} else if (pathname /register) {res.writeHead(200, { Content-Type: text/html;charsetutf-8 });res.end(执行注册)} else if (pathname /admin) {res.writeHead(200, { Content-Type: text/html;charsetutf-8 });res.end(处理客户端的业务逻辑)} else {res.writeHead(404, { Content-Type: text/html;charsetutf-8 });res.end(页面不存在)}}).listen(8081);console.log(Server running at http://127.0.0.1:8081/);routes.js : const http require(http);
const fs require(fs);
const path require(path)
const url require(url)let getFileMime function (extname) {// 把异步读取文件方法改为同步读取文件方法let data fs.readFileSync(./data/mime.json);let mimeObj JSON.parse(data.toString())console.log(mimeObj[extname])return mimeObj[extname]}exports.static function (req, res, staticPath) {// 1. 获取地址console.log(req.url)let pathname url.parse(req.url).pathname// 默认加载index.htmlif (pathname /) {pathname /index.html} else {pathname pathname}// 获取路径中的后缀名let extname path.extname(pathname)// 2.通过fs模块读取文件if (pathname ! /favicon.ico) {try {// 把异步读取文件方法改为同步读取文件方法let data fs.readFileSync(./ staticPath pathname);if (data) {let mine getFileMime(extname)res.writeHead(200, { Content-Type: mine ;charsetutf-8 });res.end(data);}} catch (error) {}}
}