node-js 搭建静态资源服务

使用node-js 搭建一个静态资源服务
  1. 项目目录格式如下
    在这里插入图片描述
  2. 在01_index.js中配置相关内容及启动服务,这里就涉及到之前关于文件操作的fs模块了。
    __dirname解释
	const http = require('http')
	// 引入fs模块
	const fs = require('fs')
	const server = http.createServer((resquest,response) => {
		// 获取url 路径
		let { pathname } = new URL(request.url,'http://127.0.0.1')
		// 拼接文件路径
		const rootPath = __dirname + '/assets' + pathname
		// 读取文件 这里是用异步读取
		fs.readFile(rootPath,(err,data) => {
			if(err){
				response.statusCode = 500
				response.setHeader('Content-type','text/html;charset=utf-8')
				response.end('文件读取失败')
				return
			}
			respnse.end(data)
		})
	})
	server.listen(9000,()=>{
	 console.log('服务启动成功')
	})
  1. 当node服务启动成功之后,我们可以直接在浏览器中访问静态文件地址,如能直接通过路径访问到相对应的文件,则证明搭建成功。例:直接访问css地址
    在这里插入图片描述
  2. 完善一下错误处理的返回,可以看下文档中介绍 ERROR错误
	const http = require('http')
	// 引入fs模块
	const fs = require('fs')
	const server = http.createServer((resquest,response) => {
		// 判断请求类型错误
		if(request.method !=='GET'){
			response.statusCode = 405
			response.end('<h1>请求方式错误</h1>')
			return
		}
		// 获取url 路径
		let { pathname } = new URL(request.url,'http://127.0.0.1')
		// 拼接文件路径
		const rootPath = __dirname + '/assets' + pathname
		// 读取文件 这里是用异步读取
		fs.readFile(rootPath,(err,data) => {
			if(err){
				response.setHeader('Content-type','text/html;charset=utf-8')
				switch(err.code){
					case 'ENOENT':
						response.statusCode = 404
						response.end('<h1>Not Found</h1>')
					case 'EPERM':
						// 无操作全新
						response.statusCode = 403
						response.end('<h1>Forbidden</h1>')
						default:
						// 其它未知错误
						 response.statusCode = 500
						 response.end('<h1> Intetnal Server Error </h1>')
				}
				return
			}
			respnse.end(data)
		})
	})
	server.listen(9000,()=>{
	 console.log('服务启动成功')
	})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值