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/');
nodejs的简单服务器程序的更多相关文章
- Socket编程回顾,一个最简单服务器程序
第一次接触服务器是快毕业的时候,是不是有点晚(# ̄ω ̄),这也导致工作方向一直没考虑网络编程这块,做了好多其他没啥“意思”的技术. 之前看到一篇博文提到程序猿80%都是庸才,10%是人才,10%是天才 ...
- nodeJs搭建简单服务器
实现简单的例子:hello word 把第一个文件命名为server.js 在server.js里写入 var http = require("http"); http.crea ...
- 最简单的回射客户/服务器程序、time_wait 状态
下面通过最简单的客户端/服务器程序的实例来学习socket API. echoser.c 程序的功能是从客户端读取字符然后直接回射回去. C++ Code 1 2 3 4 5 6 7 8 9 10 ...
- Linux下select的用法--实现一个简单的回射服务器程序
1.先看man手册 SYNOPSIS /* According to POSIX.1-2001 */ #include <sys/select.h> / ...
- nodejs学习之简单服务器的编写
不废话了!直接上代码: var http = require('http'); //导入模块http http.createServer(function(request,response){ res ...
- Socket创建简单服务器和客户端程序
使用Socket编程创建简单服务器和客户端 要知道的 Socket-AddressFamily, SocketType, ProtocolType https://blog.csdn.net/weix ...
- Node安装及搭建简单服务器
注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件. 安装 1.在网上下载node安装包,官方网站2.双击下载文件,按步骤 ...
- nodejs搭建web服务器初级
nodejs搭建简单的web服务器 1.1简介 Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快 ...
- Nodejs创建HTTPS服务器
Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...
随机推荐
- tiny xml 使用总结
这几天在埋头写自己的3D文件浏览器(稍后发布),突发奇想的要把自己的内部格式转化成XML,于是,把以前在研究所时用过的ExPat翻了出来.ExPat是基于事件的XML解释器,速度挺快的,但结构方面有点 ...
- Taum and B'day
//自己 def main(): t = int(raw_input()) for _ in range(t): units = 0 b, w = map(int, raw_input().strip ...
- mongoexport导出数据
mongoexport用法: /***** Export MongoDB data to CSV, TSV or JSON files.options: --help ...
- php缓存技术常用函数
OB缓存系列函数(输出缓存) ob_start()函数:打开输出缓冲区. 函数格式 ob_start(void) 说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在ob缓冲区 ...
- hdu 1142 A Walk Through the Forest
http://acm.hdu.edu.cn/showproblem.php?pid=1142 这道题是spfa求最短路,然后dfs()求路径数. #include <cstdio> #in ...
- NOR flash和NAND flash区别,RAM 和ROM区别d
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- voijs1883 月光的魔法
背景 影几欺哄了众生了天以外——月儿何曾圆缺 描述 有些东西就如同月光的魔法一般. Luke是爱着vijos的.他想为自己心爱的东西画些什么. 就画N个圆吧.把它们的圆心都固定在x轴上. 圆与圆.为了 ...
- Array vs Linked List
Access: Random / Sequential 1. Array element can be randomly accessed using index 2. Random access f ...
- 我的Android进阶之旅------>Android拍照小例子
今天简单的学习了一下android拍照的简单实现. 当然该程序是个小例子,非常简单,没有什么复杂的操作,但是可以学习到Android 拍照API流程. 1.在布局文件中添加一个 surfaceView ...
- WPF最基本的4个引用
Windowsbase Windows基本类库 PresentationCore wpf核心类库 PresentationFramework wpf框架 System.Axml 系统类库