我们做本地服务器,经常会选择Apache、IIS或者Tomcat,当然这些最方便的算是Apache,几乎不需要配置,最多就是配置下端口,亦或者我们想不用localhost,改成其他也是可以的,只要去更改hosts文件即可。但是学了node怎么能不用用呢,这里介绍如何用node实现你自己的服务器。

1.需要什么

首先我们需要启动文件,然后就是放置我们要打开的文件的目录,在这里我们对要打开的文件类型不同的解析,所以加了个mimeTyep文件,然后就是一个快速启动方式。目录如下:

2.启动文件

使用http模块创建服务

var server = http.createServer(function(req, res){
//code...
})

对请求文件的基本解析

 //请求的文件
var pathname = url.parse(req.url).pathname;
//解析文件路径(dir就是定义的默认文件存放目录)
var dirPath = path.join(dir, pathname);
//获取文件类型
var ext = path.extname(dirPath);
ext = ext?ext.slice(1) : 'unknow';

在发起请求的时候我们要根据文件类型添加不同的content-type

var mime = require('./mime');
contentType = mime.types[ext] || 'text/plain';
res.writeHead(200, {
'Content-type': contentType
});

监听端口

server.listen(port);

3.启动

启动很简单了,直接node server,你就可以在浏览器中localhost://port/file,这里为了方便启动服务,建立一个server.bat文件,里面的内容其实就是node server

完整项目地址:https://github.com/Stevenzwzhai/node-server

最新文章

  1. BZOJ 1026 【SCOI2009】 windy数
  2. HDU 1796 容斥原理
  3. CS小分队第一阶段冲刺站立会议(5月6日)
  4. shell编程的一些例子5
  5. iOS 使用GitHub托管代码(github desktop使用)
  6. Oracle EBS DBA常用SQL - 安装/补丁【Z】
  7. Migration data on SQL
  8. 关于COOKIE使用过程为NULL
  9. Troubleshooting "Global Enqueue Services Deadlock detected" (Doc ID 1443482.1)
  10. Windows Store 手势编程小结
  11. 业务逻辑 : 未完 : easybook.com
  12. 浅谈Linux虚拟内存
  13. 用记事本编写java中的HelloWorld
  14. Frequent Value
  15. ACM学习大纲
  16. 【agc001e】BBQ HARD(动态规划)
  17. express基础
  18. c# 判断两条线段是否相交(判断地图多边形是否相交)
  19. Spring的事务到底该给Dao配置还是给Service配置
  20. JZYZOJ1311 邮局设置问题 dp

热门文章

  1. 【转载】#344 - Hidden Base Class Member Is Invoked Based on Declared Type of Object
  2. UVA-674 Coin Change---完全背包
  3. 【BZOJ1858】[SCOI2010] 序列操作(ODT裸题)
  4. 2017.10.18 微机原理与接口----汇编语言语法和DOS功能调用
  5. Action 语法的简介
  6. 文本编辑器Vim技巧
  7. elsevier期刊要求翻译
  8. redis事务中的WATCH命令和基于CAS的乐观锁
  9. Vue nodejs商城项目-项目概述
  10. 当Java遇见了Html--Jsp详解篇