文档章节

nodejs服务启动程序

淮河一梦
 淮河一梦
发布于 2015/02/06 17:19
字数 191
阅读 22
收藏 0
<!-- lang: js -->
var http = require("http"), url = require("url"), path = require("path"), fs = require("fs");

http.createServer(function(req, res) {

var pathname = __dirname + url.parse(req.url).pathname;

if (path.extname(pathname) == "") {
	pathname += "/index.html";
}

fs.exists(pathname, function(exists) {
	if (exists) {
		switch (path.extname(pathname)) {
		case ".html":
			res.writeHead(200, {
				"Content-Type" : "text/html"
			});
			break;
		case ".js":
			res.writeHead(200, {
				"Content-Type" : "text/javascript"
			});
			break;
		case ".css":
			res.writeHead(200, {
				"Content-Type" : "text/css"
			});
			break;
		case ".gif":
			res.writeHead(200, {
				"Content-Type" : "image/gif"
			});
			break;
		case ".jpg":
			res.writeHead(200, {
				"Content-Type" : "image/jpeg"
			});
			break;
		case ".png":
			res.writeHead(200, {
				"Content-Type" : "image/png"
			});
			break;
		case ".bmp":
			res.writeHead(200, {
				"Content-Type" : "image/bmp"
			});
			break;
		default:
			res.writeHead(200, {
				"Content-Type" : "application/octet-stream"
			});
		}

		fs.readFile(pathname, function(err, data) {
			res.end(data);
		});

	} else {

		pathname = __dirname + url.parse(req.url).pathname;

		if (route(pathname, req, res)) {
			res.end();
		} else {
			res.writeHead(404, {
				"Content-Type" : "text/html"
			});
			res.end("<h1>404 Not Found</h1>");
		}

	}
});

}).listen(8888, "127.0.0.1");
console.log("Server running at http://127.0.0.1:8888/");

function route(pathname, req, res) {
try {
	var app = require(pathname);
	app.main(req, res);
	return true;
} catch (err) {
	console.log('Error: %s', err.message);
	return false;
}
}

© 著作权归作者所有

共有 人打赏支持
上一篇: 国家区域代码
淮河一梦
粉丝 13
博文 5
码字总数 43814
作品 0
深圳
程序员
私信 提问
nodejs express异常捕获

参考链接:http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/nodejs-1131.html 由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉。服务将会非常不稳定。解决方法: ...

CoinIdea
2018/08/29
0
0
升级 Node.js 版本遇到的 co 和 pm2 问题解析

背景 nodejs 4.x 的项目, 需要升级到6.9.5(当时最新的稳定版本)以改善性能和可靠性. 业务中使用到了co, 进程使用 pm2 管理. 升级nodejs版本 确保构建脚本能够使用nvm安装nodejs 6.9.5, 本地运...

netwjx曹宇
2018/10/25
0
0
使用 systemd 发布 Node.js 应用

2013年1月16日,我在“比利时node.js用户组” 讲过一个“用systemd部署Node.js”的话题。 下面是我所用幻灯片的注解版: 如果你更喜欢PDF(没有笔记),可以在此下载。 简介 这次演讲的主题是...

oschina
2013/01/22
1K
2
uncaughtException NodeJS服务总是崩溃的解决办法

许多人都有这样一种映像,NodeJS比较快; 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务; 它比较适合对并发要求比较高,而且简单的业务场景。 在Express的作者的TJ Ho...

飞翔的熊blabla
2018/12/18
0
0
node.js 调研与服务性能测试

这几天对nodejs进行了一下简单的调研 主要关注这几个方面 socket服务性能, socket客户端性能 http服务性能. 服务的稳定性与资源占用 开发成本 考虑到今后的应用场景, 实现了一个简单的memca...

红薯
2010/12/21
2.7K
10

没有更多内容

加载失败,请刷新页面

加载更多

jenkins 配置

1. ssh-keygen -t rsa 2. 配置 GitLab 用户 创建一个用户或选择一个已有用户,用来让 Jenkins 和 GitLab API 交互。这个用户将需要是全局的管理员或添加进每个组/工程,并作为成员。需要开发...

应如是
25分钟前
1
0
中台迷思

到处都在喊中台,到处都是中台,中台这个词在我看来已经被滥用了。 在有些人眼里:中台就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都叫它“技术中台”。 在有...

老道士
32分钟前
2
0
Linux命令参数解析

Linux命令参数 通过一个例子来理解什么是Linux命令参数。以Linux中常用的删除命令“rm”为例,输入“rm --help”可以看到如下信息,其中红色框内的就是命令参数。经常使用Linux对命令参数应该...

RongJinhui0
35分钟前
1
0
边缘节点服务ENS重磅升级 阿里云首次定义“边缘云计算”概念层层深入

摘要: 在这一横一纵之间,阿里云在2018年率先提供了基于运营商边缘节点和网络的弹性分布式算力资源平台,也就是边缘节点服务ENS,连接最后10公里的ENS可以帮助用户将计算、转发等业务下沉至...

阿里云云栖社区
40分钟前
2
0
阿里云 Aliplayer高级功能介绍(四):直播时移

基本介绍 时移直播基于常规的HLS视频直播,直播推流被切分成TS分片,通过HLS协议向播放用户分发,用户请求的m3u8播放文件中包含不断刷新的TS分片地址;对于常规的HLS直播而言,TS分片地址及相...

阿里云官方博客
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部