码迷,mamicode.com
首页 > Web开发 > 详细

nodejs的简单服务器程序

时间:2015-11-15 00:58:33      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:

下面是参考<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/‘);

 

nodejs的简单服务器程序

标签:

原文地址:http://www.cnblogs.com/scnuwangjie/p/4965940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!