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 ;
              })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,491评论 1 37
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,638评论 2 41
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,277评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,366评论 0 6