Nodejs服务器跨文件夹获取数据
2021/9/13 22:05:39
本文主要是介绍Nodejs服务器跨文件夹获取数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
服务器跨过public文件夹获取内部数据
此时请求主页面时需要写文件夹名. 如下图所示:
以上操作较为繁琐,为求简单便捷希望直接输入文件名甚至不输入文件名
基础操作如下:
node创建服务器的基本步骤:
第一步:
http为node核心模块,不用下载,直接引用即可。
// 引入http const http = require('http')
第二步:
使用http的createServer方法,方法内只有一个回调函数
req为请求,res为响应
// http创建一个服务器 req为请求,res为响应 const server = http.createServer((req, res) => { // 返回ok查看 res.end('ok') })
第三步:
设置监听,注意端口号不要冲突。
// 监听8080端口 server.listen(8080, () => { // 连接成功log提示 console.log('8080端口监听中....'); })
现阶段代码如下:
此时就可以访问测试:
以上简单的node服务器就搭好了,但仍需优化。
node服务器访问页面:
引入fs与path核心模块
// 引入fs const fs = require('fs') // 引入path const path = require('path')
使用fs读取文件,如果读取不到响应无法访问
否则返回data(自动为buffer格式)
const server = http.createServer((req, res) => { fs.readFile(path.join(__dirname, req.url), (err, data) => { // 判断:如果有错误,说明文件不存在,否则返回data(自动为buffer格式) if (err) { // 设置响应码 res.statusCode = 404 // 设置响应头 因为下面的响应内容为中文,设置utf8 res.setHeader('content-type', 'text/css;charset=utf8') res.end('无法访问') } // 将数据返回 res.end(data) }) })
此时可以做到访问index.html
Nodejs服务器跨文件夹获取数据:
如果端口后面没有内容,req.url返回的是 /
所以第二行如果req.url等于 / 就返回index.html
使用path方法拼接访问路径
const server = http.createServer((req, res) => { let url = req.url == '/' ? 'index.html' : req.url // 使用path.join方法拼接地址复制给filePath filePath const filePath = path.join(__dirname, 'public', url) // 使用fs方法读取文件。 fs.readFile(filePath, (err, data) => { // 判断:如果有错误,说明文件不存在,否则返回data(自动为buffer格式) if (err) { // 设置响应码 res.statusCode = 404 // 设置响应头 因为下面的响应内容为中文,设置utf8 res.setHeader('content-type', 'text/css;charset=utf8') res.end('无法访问') } // 将数据返回 res.end(data) }) })
最终段代码如下:
// 引入http const http = require('http') // 引入path const path = require('path') // 引入fs const fs = require('fs') // http创建一个服务器 req为请求,res为响应 const server = http.createServer((req, res) => { let url = req.url == '/' ? 'index.html' : req.url // 使用path.join方法拼接地址复制给filePath filePath const filePath = path.join(__dirname, 'public', url) // 使用fs方法读取文件。 fs.readFile(filePath, (err, data) => { // 判断:如果有错误,说明文件不存在,否则返回data(自动为buffer格式) if (err) { // 设置响应码 res.statusCode = 404 // 设置响应头 因为下面的响应内容为中文,设置utf8 res.setHeader('content-type', 'text/css;charset=utf8') res.end('无法访问') } // 将数据返回 res.end(data) }) }) // 监听8080端口 server.listen(8080, () => { // 连接成功log提示 console.log('8080端口监听中....'); })
这篇关于Nodejs服务器跨文件夹获取数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Vue新手入门教程:从零开始学习Vue框架
- 2024-11-23如何集成Ant Design Vue的图标
- 2024-11-23如何集成Ant Design Vue图标
- 2024-11-23使用vue CLI快速搭建Vue项目教程
- 2024-11-23Vue CLI多环境配置简单教程
- 2024-11-23Vue3入门教程:轻松搭建你的第一个Vue3应用
- 2024-11-23Vue3+Vite快速上手指南
- 2024-11-23Vue3阿里系UI组件入门指南
- 2024-11-23Vue3的阿里系UI组件入门指南
- 2024-11-23Vue3公共组件入门教程