进入nodejs 利用http模块搭建一个简单的服务器并配合fs模块网客户端传输文件

node.js简单了解

node.js是一个软件,它是js的代码运行环境,可以运行js代码然后实现服务器的功能;node.js的开发是模块化开发的思想。

在下载配置好node.js后,我们直接就可编写js文件代码在终端中运行(注意要进入文件所在的文件夹),在终端输入的格式:

node 文件名.js

解析:node就是去环境变量中找到这个node变量指向的软件,然后用node.exe这个软件去运行这个js文件。

学习http模块

想要实现服务器的功能,就离不开http模块,它是node自带的模块,这个模块有一个函数可以创建服务器。

这里有一个新知识,require()方法导入模块,与ES6的导入Import相似。

话不多说,先写代码:

//导入模块
const http=require("http")
//创建服务器,客户端每访问一次服务器,这个函数就执行一次
var app=http.createServer((req,res)=>{
       
         if(req.url=="index"){ //req.url为浏览器地址栏输入的ip地址后的字段

        //配置返回给客户端数据包的数据格式和编码类型
        res.setHeader("content-Type","text/html;charset=utf8")
        //给客户端最后发送一次数据,发送完就断开连接
        res.end("你访问了这个服务器")
        }else{
            res.end(not404)
        }
    })

//监听
app.listen(8088)//8088为选择访问这个服务器的端口号

到此一个简单的服务器就搭建完成了,还未介绍createServer()方法中回调函数的两个参数,相信大家有点不清楚。

req:客户端向服务器端发送的数据包

res:服务器端向客户端发送的数据包

我们打开终端运行一下这个js文件,在浏览器地址栏输入localhost:8088/index ,就可以得到服务器返回的数据。如果ip地址后面的输入的不是index网址,就会返回404。

 

 

 

 现在我们实现了简单的搭建一个服务器,那么我们加大一点难度,引入fs模块读取本地内容。

这里我们只用fs.readFile()方法,他有两个参数,第一个参数为读取文件的路径;第二个参数为回调函数,回调函数里又有两个参数(err,data)。

err代表读取失败的结果;data则代表读取成功的结果,没有数据时为undefiend。

完善代码:

const http=require("http")
const fs=require("fs")

//创建服务器
var app=http.createServer((req,res)=>{
        if(req.url=="/index"){
            //读取文件同文件下的图片
            fs.readFile("./dog1.ong",(err,data)=>{
            if(!err){//err为空时执行
                 res.setHeader("content-Type","image/png")
                res.end(data)
            }
        })
         
        }else{
                res.end("not404")                
    }
    })

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

 运行代码,网址输入index就可以看到我们读取到的图片。

这里进行了服务器的搭建和文件的读取,取得是一张图片,既然是读取文件那肯定还可以读取其他类型的文件,接下来就该大家试一下了。

注意:不同的类型,在服务器传数据给客户端时,在setHeader中要设置相应的数据格式,才能够在浏览器正常显示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值