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/‘);
时间: 2024-10-13 18:17:22

nodejs的简单服务器程序的相关文章

Python简单服务器程序

这是<Python核心编程(中的文第二版)>的一个习题,题目要求服务器能识别以下命令: ls 返回服务器程序当前目录 os 返回服务器操作系统的信息 date 得到服务器当前的时间 ls dir 返回目录dir的文件列表 服务器程序: 1 import time 2 import os 3 import datetime 4 5 HOST='' 6 PORT=21234 7 ADDR=(HOST,PORT) 8 BUFSIZE=8096 9 10 SerSock=socket.socket(s

Socket编程回顾,一个最简单服务器程序

第一次接触服务器是快毕业的时候,是不是有点晚(# ̄ω ̄),这也导致工作方向一直没考虑网络编程这块,做了好多其他没啥“意思”的技术. 之前看到一篇博文提到程序猿80%都是庸才,10%是人才,10%是天才,深有感触.仔细想想自己是不是也是还在那80%里面挣扎?一个抱怨这抱怨那的trouble maker,写着烂的掉渣的代码,永远在别人身后不思进取,给剩下的20%的同事埋雷. 扯远了,重新回顾Socket,温习下Linux内核是怎么处理Socket的吧. 文件描述符,在网络编程中经常提及这个词,当时初

nodejs创建简单服务器

1.创建package.jaon 1 { 2 "name": "application-name", 3 "version": "0.0.1", 4 "dependencies":{ 5 "express": "latest" 6 } 7 } 2.创建index.js 1 "use strict"; 2 let router = require('

PHP脚本语言写的简单服务器程序

<?php $username = $_POST["username"];/*客户端请求方式为POST,请求参数封装成nsdata类型放在HTTPBody中传给服务器,服务器用PHP脚本语言接收到请求参数,根据参数在服务器中查找数据返回给客户端*/ $password = $_POST["password"]; $type = $_POST["type"]; /*链接数据库 127.0.0.1是回送地址,网络软件测试以及本地机进程间通信*/

nodeJs搭建简单服务器

实现简单的例子:hello word 把第一个文件命名为server.js 在server.js里写入 var http  = require("http"); http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":"text/plain"}); response.write("Hello World"); re

Python实现简单的http服务器程序

主要的需求是这样的,需要调用服务器端的程序获取GPU服务器的信息并且返回给前端显示出来,那么就需要完成一个服务器端的程序,获取服务器的数据之后将数据返回(以JSON格式). 效果如下图: 页面没有内容是因为服务程序还没有启动.下面完成服务器程序: #!/usr/bin/python from bottle import route,run,template import os from bottle import get,post,request import re gpu_info_dict

Nodejs做web服务器的一个简单逻辑和实现

本文写了自己对"Nodejs做web服务器的一个简单逻辑和实现",如果不太合理,或者了解这部分的大神,欢迎拍死.哈哈,新手. 昨天开始学习Nodejs,w3cschool看了一遍.感觉其上的内容,一上来就开始介绍Nodejs的模块.看来后来,连如何"从零创建一个nodejs版的web服务器"都没能明白.可能是自己太过肤浅,或者,陷到了WAMP的思维里,不能自拔吧.后来在nodejs中文社区发了个帖子.感觉自己算是明白了点儿.写出来,希望和大家一起学习,同时也希望得到

最简单的回射客户/服务器程序、time_wait 状态

下面通过最简单的客户端/服务器程序的实例来学习socket API. echoser.c 程序的功能是从客户端读取字符然后直接回射回去. C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6

Java网络学习笔记1:用(Server)Socket编写简单的客户/服务器程序

首先需清楚Socket类提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream对象和输出流OutputStream对象.程序只需向数据流写数据,就能向对方发送数据:只需从输入流读数据,就能接收来自对方的数据. 创建服务器程序DemoServer01 public class DemoServer01 { /**  * @author 牧羊的伯格女皇  11/12  * @param args  * 创建服务端与客户端之间的相互通信