当前位置:首页 > 服务端 > nodejs的简单服务器程序

nodejs的简单服务器程序

下面是参考<Jquery、Jquery UI 及Jquery Mobile>一书中的nodej服务器程序

var http = require('http'),
    url = require('url'),
    fs = require('fs');
http.createServer(function (req, res) {
  var reqData = {
        url: url.parse(req.url, true),
        method: req.method,
        headers: req.headers },
        path = reqData.url.pathname;

  if(path.match(/^\/[0-9a-z\-]+\.(html)|(json)|(xml)$/))
    fs.readFile('.' + path, function (err, data) {
      if (err) {
        res.writeHead(404, {'Content-Type': 'text/plain'});
        res.end('not found');
      }
      else {
       if(path.split('.')[1] == 'html')
           res.writeHead(200, {'Content-Type': 'text/html'});
       else if(path.split('.')[1] == 'xml')
           res.writeHead(200, {'Content-Type': 'application/xml'});
       else 
         res.writeHead(200, {'Content-Type': 'application/json'});
       res.end(data);
      }   
    });
  else if(path == '/return-http-headers') {
    res.writeHead(200, {'Content-Type': 'application/json'});
    res.end(JSON.stringify(reqData));
  }
  else if(path == '/sleep') {
    var endTime = new Date().getTime() + 2000;
    while (new Date().getTime() < endTime);
    res.writeHead(500, {'Content-Type': 'text/plain'});
    res.end('slow response');
  }
  else if(path == '/validate') {
    var keys = [];
    for(var key in reqData.url.query) {
        if(reqData.url.query[key] == '')
            keys.push(key);
    }
    res.writeHead(200, {'Content-Type': 'application/json'});
    res.end(JSON.stringify(keys));
  }
  else if(path == '/redirect') {
    res.writeHead(302, {
      'Location': '/test-values.json' });
    res.end();    
  }
  else if(path == '/fail\-on\-purpose') {
    res.writeHead(500, {'Content-Type': 'text/plain'});
    res.end('unexpected" error');
  }
  else {
   res.writeHead(404, {'Content-Type': 'text/plain'});
   res.end('not found');
  }
}).listen(1337, "localhost");
console.log('Server running at http://localhost:1337/');

 

作者:阳子杰
来源链接:https://www.cnblogs.com/scnuwangjie/p/4965940.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/124961.html

分享给朋友: