Node访问服务器端静态资源
Posted 遥岑.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node访问服务器端静态资源相关的知识,希望对你有一定的参考价值。
通过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('服务器启动')
})
以上是关于Node访问服务器端静态资源的主要内容,如果未能解决你的问题,请参考以下文章