node基础
2022/2/14 22:42:45
本文主要是介绍node基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
NodeJS
相关网址:
●https://nodejs.org/zh-cn/
●http://nodejs.cn/
Nodejs 应用场景
1.创建应用服务 2.web开发(后端) 3.接口开发(小程序) 4.客户端应用工具 webpacck,vue,react,小程序
模块化
1.核心(内置)模块
2.第三方模块
3.自定义模块
node基础操作
node -v 查看是否安装node node 路径 运行js 两个全局变量 __dirname 当前文件所处的文件路径(绝对路径,不包含文件名) __filename 当前文件完整路径(绝对路径,包含文件名)
path模块(重点)
步骤: 1.导入相关模块,const xxx=require("模块名/路径") 2.本模块的核心代码(业务代码) 3.导出本模块(可能不需要导出) module.exports = {}
path模块: 作用:用于操作路径相关的 \在编程中具备转义的作用,如果要用\写成"\\"或者改成路径分隔符"/",后者是windows及Linux及mac共同的目分割符 path.dirname():获取路径中,文件或文件夹所在的目录 path.extname():获取路径中文件扩展名(带.) path.basename():获取路径中最后的一个文件或文件夹的名字 path.join():将多个路径描述拼接成一个完整的路径 path.join(__dirname) path.resolve():将多个路径描述拼接成一个完整的路径 Windows下是"盘符:\d" Mac/Linux下是:"/d"
url类
在v16中,nodejs已经废弃了url/querystring模块,需要被URL类给替代
语法
new URL(path[,baseUrl]) path:需要被URL类解析的路径 baseUrl:主机名,如果path中已经带有域名,则baserUrl可以不写 1.URL类不是模块,不需要导入
fs模块
fs模块:操作文件的模块 其提供了两套语法来操作文件 同步语法风格(推荐) 异步语法风格 坑:fs模块在读写文件的时候路径往往是必须的,路径支持相对路径也支持绝对路径,相对路径容易出错,建议如果拿捏不准的话,采用绝对路径。在fs模块中相对路径并不是相对于当前的脚本文件,而是相对于命令行中执行脚本文件的路径来说的
const fs=require("fs") 读文件: 同步: fs.readFileSync(文件路径,{encoding:"utf-8"}) 异步:fs.readFile(文件路径,字符集,回调函数) 写文件: 两种:1.覆盖写,2.追加写 如果要求换行,换行符不是<br/>,换行符是"\n" 1.覆盖写,同步: fs.writeFileSync(文件路径,写入内容) 2.追加写,同步: fs.appendFileSync(文件路径,写入内容) 判断文件是否存在: fs.existsSync(文件路径) 获取文件的一些基本属性: fs.statSync(文件路径) 删除文件: fs.unlinkSync(文件路径)
http模块
http默认端口号80 Https默认端口号443
nodejs常用端口号
3000 8000 8080
http模块
1.nodejs中非常常用的内置模块,其作用是为了开发者创建代码的运行环境(服务器) 2.后续的vue和react中,运行环境虽然是最终基于http模块实现,但是不是直接基于,而是如下关系 express -> http 3.步骤: a.导入http模块 const http=require("http") b.产生服务器实例对象 const server = http.createServer() c.监听请求,并且做出响应(设置请求对应的回调处理)[监听事件] server.on("request",(req,res) => { //req:请求对象 //req.url 获取请求路径 //req.method: 获取请求类型 GET/POST/PUT/DELETE //req.header: 获取头信息 ..... //res:响应对象 //res.end(文本):将文本内容输出到浏览器 //res.statusCode = 404状态码 //res.setHeader("Content-Type","text/html;charset=utf8"):设置响应头 }) d.监听指定的端口号 server.listen(3000,() => { //当监听指定端口号成功后触发该回调函数 console.log("server in running at http://localhost:3000") })
静态服务资源服务器
/** * 要求:使用本文件创建一个http服务器,当用户输入http://localhost:3000/1.jpg 能够访问第一张图片,当用户输入http://localhost:3000/2.jpg能够访问第二张图片,当用户输入其它地址,由于我们没有对应的文件,则输出404找不到的提示。 * 提示今天的知识点: * fs模块,http模块,path模块 */ // 导入相关的模块 const http = require("http") const fs = require("fs") const path = require("path") // 创建出服务器实例对象 const server = http.createServer() // 设置请求的响应处理程序 server.on("request", (req, res) => { // 思路: // 1. 获取用户请求路径(req.url) // 2. 拼接地址 // 3. 文件可能不存在的,此处需要判断 // 3.1、如果文件存在,则读取文件,输出即可 // 3.2、如果文件不存在,则暑促互404 // 坑:现在的浏览器都会在请求的时候默认先访问/favicon.ico const url = req.url const filepath = path.join(__dirname, "static", url) if (url !== "/favicon.ico") { // 如果请求的地址不是网站的logo图标则处理(或者也可以不加这个判断,直接将图标也放到static目录下) console.log(filepath) if (fs.existsSync(filepath)) { // 文件存在(输出,输出效果=读取+输出) const data = fs.readFileSync(filepath) // 输出 res.end(data) } else { // 文件可能不存在 res.statusCode = 404 res.end("<h1>404</h1>") } } }) // 监听指定的端口号 server.listen(3000, () => { console.log("static files server is running at http://localhost:3000") })
这篇关于node基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程