note.js 虚拟服务器,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文件,看看结果:

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

体验.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();

{

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

运行结果.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("

我是txt文件

");

}else if(url == "/html"){

res.setHeader("Content-Type","text/html;charset=utf-8");

res.end("我是有下划线的html文件");

}

})

server.listen(3000,function(){

console.log("running");

})

cmd运行结果:

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

cmd.png

客户端运行结果:

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

txt.png

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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运行界面:

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

cmd.png

端口界面:

8d8b66627871?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

端口.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值