文档章节

nodejs服务启动程序

淮河一梦
 淮河一梦
发布于 2015/02/06 17:19
字数 191
阅读 20
收藏 0
点赞 0
评论 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;
}
}

© 著作权归作者所有

共有 人打赏支持
淮河一梦
粉丝 12
博文 5
码字总数 43814
作品 0
深圳
程序员
vscode 调试node之npm与nodemon

更多相关内容见博客 github.com/zhuanyongxi… 调试nodejs有很多方式,可以看这一篇How to Debug Node.js with the Best Tools Available,其中我最喜欢使用的还是V8 Inspector和vscode的方式...

砖用冰西瓜
06/18
0
0
利用 Node.js 实现 SAP Hana 数据库编程接口

自 SAP HANA SP 11 之后,可以使用 Node.js 作为 Hana 的编程接口。SAP 将 Application server 简称为 XS。现在 XS 已经演化为 Advanced 版本。为了区别,早期的 XS 被称为 XS Classical。 ...

前端热爱者
05/16
0
0
Nodejs express、html5实现拖拽上传

Nodejs express、html5实现拖拽上传 一、前言 文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传。给用户体验带来很大问题...

james_laughing
2015/06/02
0
0
异步通信组件hprose在微信小程序中的使用例子

网上搜索了在微信小程序中的使用,基本都是最老的版本 目前在新版中无法使用 现在写一个例子 第一步: 准备好一个hprose的服务端,什么语言的都行,我这里使用的是nodejs版本的 我进入开源的官方...

MrInsight
05/28
0
0
4.1 火车票代售点----后端API和开放平台

后端API长什么样? 开放平台其实都是开放API, 那么API又是什么呢?简单理解就是url,就是增删改查, 之前说过的就是前端/移动端对后端的数据请求,攻与受。 先看看API长什么样。 htttp://ww...

产品经理的技术课堂
05/01
0
0
Node.js成为下一个大事件的七大原因

现代的开发人员旨在于定期创造新的东西,可能每隔一两个月会交付推出一项新的技术。一些没有很好派生和管理地技术当然就会很快地消失。Node.js似乎与这些技术截然不同,自2009年推出以来,它...

Miss_Hello_World
2015/07/30
0
0
拿什么守护你的Node.JS进程: Node出错崩溃了怎么办?

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

myownghost
2014/09/16
9K
4
WebStorm 9“神器”变“霸器”

WebStorm 9测试版新增:Live Edit增强、JS后缀模板、Gulp集成、Node.js的spy-js和改善Editorconfig等。 早在半年前,JetBrains就发布了WebStorm 9的发展路线,经过半年的不断努力与更替。Web...

kouxunli1
2014/10/21
0
1
超简单的前端跨域、前后端分离解决方案

简介 LiveNode是一个基于Node.js轻巧的web服务,帮助前端开发者解决本地跨域,代码刷新,以及SPA(单页应用)前后端服务分离,并且可以用于生产环境项目部署。 Github地址 安装 全局安装liven...

飞翔荷兰人
05/23
0
0
深入浅出Node.js(四):Node.js的事件机制

Node.js的事件机制 Node.js在其Github代码仓库(https://github.com/joyent/node)上有着一句短短的介绍:Evented I/O for V8 JavaScript。这句近似广告语的句子却道尽了Node.js自身的特色所...

leeldy
2012/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计神器 - 摹客设计系统上线了 | 晒出你的设计规范,赢iPad Pro!

在国内,设计规范也许还是个不太常用的概念,但是如果你正好有参与互联网公司的产品设计,你应该早就已经体会到设计规范的重要性了。UI设计师总是要花费大量的时间和精力向开发描述一大堆设计...

mo311
12分钟前
0
0
Thymeleaf 使用过程中的一些记录

Thymeleaf格式化时间: th:value="${#dates.format(gw.regDT,'yyyy-MM-ddHH:mm:ss')}" Thymeleaf select反选: <select id="status" name="status" th:field="${gw.status}" th:value="${gw.......

惊尘大人
15分钟前
0
0
istio源码分析之pilot-discovery模块分析

本文分析的istio代码版本为0.8.0,commit为0cd8d67,commit时间为2018年6月18日。 本文为Service Mesh深度学习系列之一: Service Mesh深度学习系列part1—istio源码分析之pilot-agent模块分...

xiaomin0322
20分钟前
0
0
数据库基本操作:增删改查及联表操作

所用软件:SQL Server Management Studio 首先第一步,建立一个表。在这里命名为T1。并在里面填入几条数据。如图: T1 一.查询 查询所有:select * from T1; 按条件查询:select * from T1 ...

小_橙_子
24分钟前
0
0
Crontab作业时间设置

今天,遇到这么一个题目,周一到周五的9:00-16:59之间,每隔两分钟将某个命令运行一次。给的答案是: */2 9-16 * * 1-5 /usr/sbin/somecommand dosomething 乍一看,这个答案不对,应...

大别阿郎
29分钟前
0
0
ES17-JAVA API文档管理

1.保存文档 可以通过json工具把java对象转换成json字符串进行保存,也可以通过内置的帮助类直接构建json格式 /** * 获取客户端 * * @return */public static TransportClie...

贾峰uk
29分钟前
0
0
Python代码规范和命名规范

前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头...

blackfoxya
32分钟前
0
0
联动滑动之一:NestScrollChild和NestedScrollingParent

NestScrollChild和NestedScrollingParent 吐槽一下开源中国竟然标题字数有限制 由于项目中使用了CoordinateLayout来解决联动以及实现炫酷的UI效果,那么必须就要研究一波源码了,毕竟知其然知...

JerryLin123
49分钟前
1
0
cloudera spark2.2 读写hbase

cloudera spark2.2 读写hbase 例子 host = 'bigdata-03,bigdata-05,bigdata-04'conf = { "hbase.zookeeper.quorum": host, "hbase.mapreduce.inputtable": "student1"}k......

osenlin
54分钟前
0
0
数据库规范化

转载自 一个小时学会MySQL数据库 地址:http://www.cnblogs.com/best/p/6517755.html 截取其中 1.4 部分 用于自己学习使用 感谢作者:张果 1.4、数据库规范化 经过一系列的步骤,我们现在终于...

十万猛虎下画山
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部