node.js 搭建web服务器

引言

今天学习目标,实现apache功能。
搭建真正的web服务器。
在node点js中有一个核心模块 HTTP

一:体验一把这个模块http

①:老规矩 引入模块

var http = require("http");

②:使用http,创建web服务器。

var server = http.createServer();

上述已经创建好服务器啦。
了解一下服务器功能:
对数据的处理,发送请求,接收请求,返回结果。
③:接收用户请求 request()
单次监听。是否接收

server.on("request",function(){
    console.log("收到用户请求啦!");
}

④:接收到请求,要启动服务器啦。listen端口号3000是否开启

server.listen(3000,function(){
    console.log("服务器启动成功~可以通过http://127.0.01:3000访问啦~~~");
})

运行一下上面的js文件,看看结果:


体验.png
二:关于request 接收用户请求事件。

两个参数:
1.request 请求的对象(获取客户端请求信息)
2.response 响应对象(发送响应信息给客户端)

体验一把。老样子
①:引入模块
②:创建服务器
③:接收并响应
④:结束响应 response.end()
⑤:启动服务器

var http = require("http");
var server = http.createServer();
server.on("request",function(request,response){
  console.log("收到请求啦,请求路径为:"+request.url);
  response.end();
{
运行结果.png
三:正确的返回数据。

上面看到的是返回该请求路径,我们返回一个文本,一个页面试一下。
返回在response.write(“”)中填写汉字不会被解析。
我们需要设置请求头的字符编码格式解析汉字。
请求头:setHeader("Conten-type")

var http = require("http");
var server = http.createServer();
server.on("request",function(req,res){
    var url = req.url;
    if(url == "/txt"){
        /* 返回纯文本,页面不解析html标签 */
        res.setHeader("Content-type","text/plain;charset=utf-8");
        res.end("<p>我是txt文件</p>");
    }else if(url == "/html"){
        res.setHeader("Content-Type","text/html;charset=utf-8");
        res.end("<u>我是有下划线的html文件</u>");
    }
})
server.listen(3000,function(){
    console.log("running");
})

cmd运行结果:


cmd.png

客户端运行结果:


txt.png
html.png
四:返回一个正确的html文件

上面知识返回类型需要设置请求头识别字符编码。
现在读取文件并作为响应返回。用到昨天的文件模块啦。

①:引入http服务器模块,引入文件fs模块
②:用http模块的方法createServer方法创建服务器。
③:单次监听请求request。
④:读取响应文件。设置请求头并end出去。
⑤:打开服务器。

var http = require("http");
var fs = require("fs");
var server = http.createServer();
server.on("request",function(req,res){
    var url = req.url;
    if(url =="/"){
        fs.readFile("./repage01.html",function(err,data){
            if(err){
                res.setHeader('Content-Type','text/plain; charset=utf-8');
                res.end('文件读取失败' + err)
            }else{
                res.setHeader('Content-Type', 'text/html; charset=utf-8');
                res.end(data);
            }
        })
    }
})
server.listen(3000,function(){
    console.log('running:127.0.0.1:3000...........')
})

cmd运行界面:


cmd.png

端口界面:


端口.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容

  • 我|在大学时就认识他了。那时,他是大学校园里一道亮丽的风景,儒雅博学,上知天文下晓地理,赢得许多大学生的疯狂追随。...
    我是云舒儿阅读 387评论 0 3
  • 这一步,让我改变了我的心性,让我阴郁迷茫。 这一步,改变了我的生活,家庭变得沉闷,家人变得不安。 ...
    秋石宁阅读 242评论 0 2
  • 好久没有在简书写东西了,虽然仅仅只是一个月,却有种恍若隔世的感觉。 七月总是那么令人心烦意乱。小暑大暑接踵而来,前...
    星泽同学阅读 322评论 0 0
  • 想写一个人,必发自内心,而拿捏又极不易。且减去一些繁琐,尽量真实地和自己坦诚相见。剩下的,交给时间发酵。 ...
    书叉脸困觉猪2阅读 1,563评论 12 9