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 ...
随机推荐
- sql 更新一列为行号
update u_menu set issort=t1.rowId from ( --select * from --( select cmenu_id,ROW_NUMBER() over(O ...
- Broadcom网卡linux系统下无法连接到网络问题(某种情况- -||)的解决办法
国际惯例,先闲扯: 其实我是个电脑白痴,至于为什么一个电脑白痴会来做开发呢?原因非常匪夷所思且简单--“因为做开发看起来很酷!”,那为什么要一把年纪了才来做开发呢?原因更简单,“当我回过神,就发现我已 ...
- 关于Windows8.1更新后Sql Server服务消失的处理办法
前言 微软在17日发布了windows8.1,兴致勃勃地花了半天的时间更新了,不过不知所云的是,在20日又被卸下Windows Store.此为背景. 影响 更新完毕做开发的时候,发现SqlServe ...
- CMS设计-组件化
原来CMS使用的专题类的页面是 : 事先由前端写好完整页面,再交付给运营使用,这样使用的比较灵活,可以根据市场的不同需求由前端切出不同的页面,有时候一旦需求过多,就耽误切图的时间. 现在M和H5采用组 ...
- Dijkstra算法C#实现及其布线运用
大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下是空调布线对Dijkstra算法的运用,采用C#实现. 问题:室内机多台,室外机一台.寻找室内 ...
- UIViewController的生命周期及iOS程序执行顺序
UIViewController的生命周期及iOS程序执行顺序 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc ...
- NSScanner-备
注意:在扫描的时候,如果 空格是不需要扫描的,那么将会忽略空格. 如下代码: 1 NSString *string = @"my age is d 23 34.0"; ...
- 避免ssh断开导致运行命令的终止:screen
事情是这样的,需要使用ssh登陆服务器,进行工程的编译,结果不知道什么原因ssh出现write failed:broken pipe,掉线了.反复实验了好几次还是这样(白花花的时间啊,又是config ...
- Cracking the coding interview 第一章问题及解答
Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...
- Linux用户基础
http://itercast.com/lecture/21 操作系统通过用户.组概念来管理使用计算机的人 用户代表一个使用计算机的使用者,操作系统通过用户概念限制一个使用者能够访问的资源 组用来组织 ...