node服务器搭建

今天晚上学习了一下怎么搭建服务器,使用原生的http模块,在这里总结一下心得。
首先我们介绍几个模块内容,(模块的方法只是介绍我们用的):

  1. var http = require('http');
  2. var fs = require('fs');
  3. var url = require('url');

首先我们需要使用http模块

//创建一个服务器,这里采用es6语法

var server = http.createServer((req,res) =>{
      //获取url地址,这里与浏览端获取的有所不同
        var urlObj= url.parse(req.url,true);
        //拿到对应的路径地址
        var pathname =urlObj.pathname;
        var reg=/\.(html|css|js)/i;
        if(reg.test(pathname)){
                  var suffixType="html/plain";
                  var sunffix=reg.exec(pathname)[1].toUpperCase();
                switch(suffix){
                    case "HTML":
                        suffixType = "text/html";
                        break;
                    case "JS":
                        suffixType = "text/javascript";
                        break;
                    case "CSS":
                        suffixType = "text/css";
                        break;
              }
    //打开文件流查找对应的文件。
         fs.readFile("."+pathname,"utf8", (err, data) => {
                  if (err){
                         res.writeHead(404, {'content-type': suffixType + ";charset=utf-8;"});
                         return;
                    }

                    res.writeHead(200, {'content-type': suffixType + ";charset=utf-8;"});
                    res.end(data);

                });
        }
});
server.listen('12345',() => {
    console.log("端口启动"+"12345");
})

这样子就可以获取静态资源了。
这里在介绍两个东西

1.获取前端传来的数据

   var body = '';
            req.on('data', function (data) {
              //得到前台的数据
                console.log(data.toString('utf8'));
            });
              res.on('end', function () {
                 console.log("Body: " + body);
              });
              req.on('timeout',function(){
                       console.log('timeout got :');
                       res.writeHead(404, {'content-type': suffixType + ";charset=utf-8;"});
                        res.end();
                       return ;
              })
        return;

2.如果资源找不到,返回404错误

   setTimeout(function(){
            req.emit('timeout',{message:'have been timeout...'});

            return ;
        },3000);
//三秒后触发 事件
 req.on('timeout',function(){
                       console.log('timeout got :');
                       res.writeHead(404, {'content-type': suffixType + ";charset=utf-8;"});
                        res.end();
                       return ;
              })

你可能感兴趣的:(node服务器搭建)