node静态服务器优缺点_简单使用nodejs搭建一个静态服务器

前提:系统安装nodejs

搭建步骤使用nodejs搭建服务器,简单的来说可以分为三步:require相应的模块

创建服务器

配置端口

启动服务器

必要的nodejs模块以下模块都是以 var http=require('http')的方式在代码中使用http 创建http服务

url 处理网站的url

path 处理服务器文件的路径,因为同一个文件在不同操作系统中路径的表示方法是不一样的,需要把他处理成统一的

fs 读取服务器的文件

一个最简单的nodejs服务器程序

//1.require http模块var http=require('http')

//2.创建服务器,传入回调函数,作用是处理网页请求var server=http.createServer(function(req,res){

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

res.writeHead(200,'OK')

res.write(`

hello world

你好

`)

res.end()

})

console.log('open http://localhost:8080')

//3.设置监听的端口server.listen(8080)

打开终端,进入node-server文件夹,输入node index.js,然后在浏览器的地址栏输入:http://localhost:8080就可以看见hello world了

关于代码:req代表请求,res代表响应

setHeader的作用是设置响应头

setHeader('Content-Type','text/html;charset=utf-8')作用是告诉浏览这是html代码,使用html方式去解析接收到的字符串

setHeader('Content-Type','text/plain;charset=utf-8')告诉浏览器用纯文本分方式去解析接收到的字符串,页面显示的内容是这样的:charset=utf-8 作用是告诉浏览器使用utf-8方式解码,如果不写或者解码方式与文件的编码方式不一致,在网页端会看到乱码的情况

writeHead 作用是写http状态码,可以自己定义,比如说writeHead(200,'hello world'),在响应头里可以看见,但一般按照http的规定去定义write 作用是向响应体里面写入字符串,可以分多次写入

end 作用是结束响应,如果不写,网页会一直处于加载状态

listen 作用是监听端口

有了上面的知识,就可以写一个简单的静态nodejs服务器了

搭建简单的静态服务器

服务器文件文件结构

node-server

|-index.js

|-static

|-css

|-style.css

|-js

|-main.js

|-img

|-cat.png

|-index.html //网页的html文件

index.js代码:

//加载必须的模块var http=require('http')

var fs=require('fs')

var url=require('url')

var path=require('path')

//定位静态目录的位置,根据请求找出对应的文件function staticRoot(staticPath,req,res){

var pathObj=url.parse(req.url,true)

if(pathObj.pathname==='/'){

pathObj.pathname+='index.html'

}

//读取静态目录里面的文件,然后发送出去 var filePath=path.join(staticPath,pathObj.pathname)

fs.readFile(filePath,'binary',function(err,content){

if(err){

res.writeHead(404,'Not Found')

res.end('

404 Not Found

')

}else{

res.writeHead(200,'Not Found')

res.write(content,'binary')

res.end()

}

})

}

//创建服务器var server=http.createServer(function(req,res){

staticRoot(path.join(__dirname,'static'),req,res)

})

//监听8080端口server.listen(8080)

console.log('http://localhost:8080')

输入网址得到的结果

网页的请求状态

上面的代码主要是使用nodejs的fs模块,可以读取服务器里面的文件,style.css、main.js、index.html和cat.png都是fs模块根据不同的请求路径来读取得到的,最终通过res.write()方法发送到浏览器端。

如果需要路由功能,只需要在index.js里面添加路由处理程序就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值