Node访问服务器端静态资源

7 篇文章 0 订阅

通过Node访问服务器端静态资源

通过Node的http模块访问服务器端的静态资源(css文件、图像、html文件)。

  • 获取客户端请求的url地址
//获取用户请求路径
console.log(req.url)
  • 找到url对应的资源文件,利用fs模块读取文件的内容
  • 将文件内容发送给客户端
if(req.url === '/index' || req.url ==='/') {
    //读到的就是Buffer型数据
    fs.readFile(path.join(__dirname,'index.html'),function (err,data) {
        if(err) {
            throw err
        }
        res.end(data)
    })
}else {
    res.end('404')
}
//根据不同请求 做出不同响应(HTML文件)

var http = require('http')
var fs = require('fs')
var path = require('path')

http.createServer(function (req,res) {
    // res.setHeader('Content-Type','text/html;charset = utf-8')

    if(req.url === '/index' || req.url ==='/') {
        //读到的就是Buffer型数据
        fs.readFile(path.join(__dirname,'index.html'),function (err,data) {
            if(err) {
                throw err
            }
            res.end(data)
        })
    }else {
        res.end('404')
    }

}).listen(8080,function () {
    console.log('服务器启动')
})

mime.getType(url)可以通过路径返回资源类型

var http = require('http')
var path = require('path')
var fs = require('fs')
var mime = require('mime')

http.createServer(function (req,res) {
    //获取images下的路径
    var imagesDir = path.join(__dirname,'images')
    // console.log(imagesDir)

    //计算用户请求的完整路径
    var filename = path.join(imagesDir,req.url)
    console.log(filename)

    //读文件
    fs.readFile(filename,function (err,data) {
        if(err) {
            res.setHeader('Content-Type','text/plain;charset=utf-8')
            res.end('未找到文件')
        } else {
            console.log(filename)
            //mime自动匹配文件类型
            res.setHeader('Content-Type',mime.getType(filename))
            res.end(data)
        }
    })

}).listen(8080,function () {
    console.log('服务器启动')
})

res的常用属性

  • 设置响应报文头
res.setHeader('Content-Type','text/plain;charset=utf-8')
  • 设置http状态码
res.statusCode = 404     
res.statusMessage = 'Not Found'
  • 写入http响应报文头
res.writeHead(200,'OK',{
   'Content-Type':'text/plain;charset=utf-8'
})
  • 响应的报文头报文体已经响应完毕
res.end('end')
//res常用属性
var http = require('http')

http.createServer(function (req,res) {
    //设置响应报文头
    // res.setHeader('Content-Type','text/plain;charset=utf-8')

    //设置http状态码
    // res.statusCode = 404
    // res.statusMessage = 'Not Found'

    //直接向客户端响应(写入)http响应报文头 可代替上面的
    res.writeHead(200,'OK',{
        'Content-Type':'text/plain;charset=utf-8'
    })

    //res.write()
    res.write('hello 你好')

    //告诉服务器该响应的报文头报文体已经响应完毕,可以考虑本次响应结束
    res.end('end')
}).listen(8080,function () {
    console.log('服务器启动')
})

req的常用属性

  • 获取所有的请求报文头,返回的是一个对象
console.log(req.headers)
  • 获取请求报文头,返回的是一个数组
console.log(req.rawHeaders)
  • 获取请求客户端所使用的http版本
console.log(req.httpVersion)
  • 获取客户端请求的方法
console.log(req.method)
  • 获取请求的路径
console.log(req.url)
//req常用属性
var http = require('http')

http.createServer(function (req,res) {
    //获取所有的请求报文头 返回的是一个对象
    // console.log(req.headers)

    //返回一个数组,数组中保存的是请求报文头的字符串
    // console.log(req.rawHeaders)

    //httpVersion获取请求客户端所使用的http版本
    // console.log(req.httpVersion)

    //获取客户端请求的方法
    // console.log(req.method)

    //获取请求的路径
    console.log(req.url)

    res.end('end')
}).listen(8080,function () {
    console.log('服务器启动')
})
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值