• 十八、Node.js创建Web服务器(二)


    在上一篇文章中我们在自定义模块自定义了几种文件类型的头文件加工的方法:

    /**
     * 自定义模块加工响应头文件类型
     */
    module.exports.getminiName=function (extname) {
        switch (extname){
            case ".html":
                return "text/html"
            case ".css":
                return"text/css"
            case ".js":
                return "text/js"
            case ".xml":
                return"text/xml"
            default:
                return"text/xml"
        }
    }

    但是我们知道,一个html文件除了自己会去加载所引入的上面这几种文件,可能还需要加载img,video,zip等等,很多骑她类型的文件,因此上面这种加工就是辅助我们理解头文件的加工原理的,现实开发中是满足不了的;

    下面我整理了一个后缀名对应头文件的json文件,基本上包含了所有的文件类型,下面我们看看如何从该json文件里面解析获取头文件:

    项目结构截图:

    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/epub+zip" ,
      ".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/rdf+xml" ,
      ".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/svg+xml" ,
      ".sv4cpio":"application/x-sv4cpio" ,
      ".sv4crc":"application/x-sv4crc" ,
      ".svf":"image/vnd" ,
      ".svg":"image/svg+xml" ,
      ".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/xhtml+xml" ,
      ".xhtm":"application/xhtml+xml" ,
      ".xhtml":"application/xhtml+xml" ,
      ".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"
    }

    自定义模块,用来加工并返回头文件的getmimeFromFile.js文件代码:

    下面是错误代码:

    var  fs=require("fs")
    module.exports={
        getMime:function (etxName) {
            fs.readFile("./mime.json",function (err,data) {
                if (err){
                    console.log('mime.json文件不存在');
                }else {
                    //console.log(data.toString());//将十六进制转换为字符串
                    var  mimes=JSON.parse(data.toString());//将json字符串转换为json对象
                    //console.log(mimes[etxName]);
                    return (mimes[etxName]||"text/html")+"111111111111111111111"//返回对应的头文件形式,如果没有的话就返回text/html
                    /**
                     * 注意  fs.readFile()方法是异步的,非阻塞的,getMime方法在被调用的时候fs.readFile()的回调函数并没执行,也就是说
                     * getMime()方法根本没有返回值
                     * 解决方法1:使用同步方法:fs.readFileSync()
                     */
                }
            })
        }
    }

    解决方法1:使用同步方法:fs.readFileSync()

    module.exports={
        getMime:function (extname) {
            var data=fs.readFileSync("./mime.json");//这里使用同步方法,注意同步方法读取文件直接返回读取内容
            var mime=JSON.parse(data.toString())[extname];
            return mime||"text/html";
        }
    }

     解决方法2:使用回调函数解决异步问题:

     1 var fs=require("fs")
     2 function getdata(callback) {
     3     fs.readFile("./mime.json", function (err, data) {
     4         callback(data)
     5     })
     6 }
     7 getdata(function (result) {
     8     console.log(result.toString());
     9     /**
    10      * 在调用getdata方法时,如果getdata方法里面有异步方法,但是我们又必须使用异步方法的返回数据
    11      * ,那么我们就可以在getdata方法里面的回调函数里面获取到异步方法里面的数据来使用
    12      */
    13 })
  • 相关阅读:
    thinkphp3.2新部署是错
    淘宝code
    面试感悟----一名3年工作经验的程序员应该具备的技能---转载
    【海量之道】海量之道之SET模型
    看过年人流高峰,浅聊并发之战[架构篇]
    docker启动遇到的问题
    监听数据配置
    Python+requests+unittest+excel实现接口自动化测试框架
    冒泡排序及优化
    jmeter监控的一些插件
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/10767094.html
Copyright © 2020-2023  润新知