7.28笔记整理nodejs

node整理

一、Node.js的安装
1、安装地址:http://nodejs.cn,不建议安装最新版本
2、配置缓存和全局安装路径:

(注意:举例是D盘 以实际安装的盘为准,路径不建议手写 最好是地址栏复制)

在D:\nodejs)下创建文件夹:node_cache、node_global、node_global下创建node_modules

然后win+r输入cmd回车,在DOS窗口里面执行如下命令:

npm config set prefix “D:\nodejs\node_global”

npm config set cache “D:\nodejs\node_cache”

3、 配置环境变量:

我的电脑>右键>属性>高级系统设置>环境变量>系统变量中添加系统变量NODE_PATH

输入路径:D:\nodejs\node_global\node_modules (最好在地址栏复制,不要手写)

4、我的电脑>右键>属性>高级系统设置>环境变量>系统变量中找到Path>双击>win10新建(输D:\nodejs\node_global) win7加分号(然后输入D:\nodejs\node_global)(建议在地址栏复制,不要手写)

5、测试:

随便打开一个文件夹,地址栏输入cmd敲回车打开DOS小黑窗

输入node -v 敲回车

输入npm -v 敲回车

输入npm i nodemon -g 敲回车

----这些都成功的话,说明安装成功

二、什么是node.js
node.js是一个软件,他是js代码运行的环境,可以运行js代码然后实现服务器功能

三、一些常用指令
1、输入node xx.js 运行js文件(在控制台输入node之后,再输一两个文件名的中的字,按tab键可以自动补全)
2、输入cls 清除屏幕上的打印信息
3、ctrl+c 停止运行 (每次修改js文件之后都需要停止之前的代码重新运行js文件,不能同时运行多个)
4、上下键 输入之前输入过的指令历史

(如果熟悉vm的用起这些指令来应该会比较轻松)

四、创建node.js

  • 使用require指令引入http模块,并且将实列化的http赋值给变量http
var http = require("http");
  • 创建服务器
    使用http.createServer()创建服务器,并且使用listen绑定8080端口,通过req和res来接收和响应数据
    在这里插入图片描述

五、路径

  • 全局变量__dirname是一个字符串,代表当前js文件所在目录的路径(绝对路径)
  • 全局变量 __filename是一个字符串,代表当前js文件的路径(绝对路径)
  • 各种路径:
本地相对路径
  在这个页面中写路径: file://x1/x2/x2/index.html  
"./src/18.jpg"  写这个路径的文件的页面是在本地打开的==> file://x1/x2/x2/src/18.jpg
"src/18.jpg" 写这个路径的文件的页面是在本地打开的 ==> file://x1/x2/x2/src/18.jpg
"file://c:/"


本地绝对路径
从根盘符开始写路径
"C:/Users/Administrator/Desktop/%E4%BB%A3%E7%A0%81/14-%E5%90%84%E7%A7%8D%E8%B7%AF%E5%BE%84(%E7%9B%B8%E5%AF%B9%E7%BB%9D%E5%AF%B9)/index.html"



相对网络路径
当前页面的网址:  "协议://ip:port /src/news/index.html  querystring hash"
页面内部的路径:
 "./src/18.jpg" ==> "协议://ip:port /src/news/src/18.jpg"
"src/18.jpg" ==> "协议://ip:port /src/news/src/18.jpg"

思考1:
用户输入网址: 
"http://192.168.6.60:8080/user/20220728/newspage.html?n=20" 
打开了一个页面,在这个页面中有一个img的src是 : "./src/18.jpg"
请问192.168.6.60:8080这个服务器会受到req.url是什么?
: "/user/20220728/src/18.jpg"

思考2:
用户输入网址: 
"http://192.168.6.60:8080/user/20220728/newspage" 
打开了一个页面,在这个页面中有一个img的src是 : "./src/18.jpg"
请问192.168.6.60:8080这个服务器会受到req.url是什么?
: "/user/20220728/src/18.jpg"
它真正的网址:"http://192.168.6.60:8080/user/20220728/src/18.jpg"



绝对网络路径
"协议://ip:port /src/news/src/18.jpg"

易错思考:
用户输入网址: http://192.168.6.60:8080/user/20220728/newspage
打开了一个页面,在这个页面中有一个img的src是 : "192.168.6.60:8080/src/18.jpg"
请问192.168.6.60:8080这个服务器会受到req.url是什么?
: "/user/20220728/192.168.6.60:8080/src/18.jpg"
它真正的网址:"http://192.168.6.60:8080/user/20220728/192.168.6.60:8080/src/18.jpg"


本地相对根路径
思考:用户本地打开: "file:///c:/xx/xx2/index.html"
页面中有一个img的src是 : "/src/18.jpg"
它真正的路径:"file:///c:/src/18.jpg"


网络相对根路径
"/src/18.jpg"
思考:
用户输入网址: http://192.168.6.60:8080/user/20220728/newspage
打开了一个页面,在这个页面中有一个img的src是 : "/src/18.jpg"
请问192.168.6.60:8080这个服务器会受到req.url是什么?
:"/src/18.jpg" 
它真正的网址:"http://192.168.6.60:8080/src/18.jpg"

六、fs模块
(这里是没有举例完的,只是一部分比较常用的,想知道详细一些的朋友可以查看官网)
1、读取文件

fs.readFile(path,(err,data)=>{})

path 填路径 可以绝对可以相对
err代表读取失败
data代表读取成功 它是一个buffer类型的数据(二进制数据流) 可以通过toString()转化为字符串
注意:res.end()方法接受 字符串或者buffer

fs.readFile(__dirname+"/src/movie.mp4",(err,data)=>{
	console.log("movie",data)
})
fs.readFile(__dirname+"/src/a.txt",(err,data)=>{
	console.log("a",data)
})
fs.readFile(__dirname+"/src/b.jpg",(err,data)=>{
	console.log("b",data)
})

2、写入文件(创建文件)
fs.writeFile(path ,data,callback(er))
如果文件存在,该方法写入的内容会覆盖旧的文件内容,不存在就创建一个新的
path - 文件路径
data - 要写入文件的数据,可以是 String(字符串)
callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。

fs.writeFile(__dirname+"/src/a.txt","hello",function(err){
	console.log(err)
})
//创建并写入文件信息:如果文件不存在 就会创建
fs.writeFile(__dirname+"/src/b.txt","hello666",function(err){
	console.log(err)
})

//如果文件夹不存在 就会报错 
fs.writeFile(__dirname+"/src1/b.txt","hello666",function(err){
	console.log(err)
})

3、删除文件
fs.unlink(path,callback(err))
path - 文件路径。
callback(err) - 删除回调函数,err错误信息

//删除文件:如果删除遇到权限问题  会删除失败
fs.unlink(__dirname+"/src/a.txt",(err)=>{
	console.log(err)
})

4、以追加方式写文件
fs.appendFile(__dirname + ‘/test.txt’, ‘我会追加到文件内容的末尾’, function (er) {
console.log(‘追加内容完成’);
})

fs.appendFile(__dirname+"/src/b.txt","hello world",(err)=>{
	console.log(err)
})
fs.appendFile(__dirname+"/src/b2.txt","hello world",(err)=>{
	console.log(err)
})

5、创建目录
fs.mkdir(__dirname + ‘/test’, function (err) {
if(err) throw err
console.log(‘创建目录成功’)
})

 fs.mkdir(__dirname+"/src/a.jpg",(err)=>{})

6、移动/重命名文件或目录:整个功能相当于重命名一个文件/文件夹路径
fs.rename(oldPath, newPath, callback);
oldPath, 原目录/文件的完整路径及名;
newPath, 新目录/文件的完整路径及名;如果新路径与原路径相同,而只文件名不同,则是重命名
callback(err), 操作完成回调函数;err操作失败对象

移动文件有一个bug:新路径和旧路径必须是同一个根盘

var oldpath=__dirname+"/src/b"
var newpath=__dirname+"/src/a/b"
fs.rename(oldpath,newpath,(err)=>{})

7、拷贝文件
fs.copy(oldPath, newPath, callback);
oldPath, 原文件的完整路径;
newPath, 新文件的完整路径;
callback(err), 操作完成回调函数;err操作失败对象

拷贝文件以后两个文件都会存在磁盘中

var oldpath=__dirname+"/src/b.jpg"
var newpath=__dirname+"/src/a/b.jpg"
fs.copyFile(oldpath,newpath,(err)=>{
	fs.unlink(oldpath,()=>{})
})

8、读取目录

fs.readdir(__dirname+“/src”,(err,arr)=>{

​ console.log(err,arr)

})

fs.readdir(__dirname+"/src",(err,arr)=>{
	console.log(err,arr)
})

七、url模块
可以将url网址解析为一个对象

var url=require("url")
var str="http://www.6666.com/20220728/news/page1/index.html?count=20&maxid=123456"
var obj=url.parse(str)
console.log(obj)

在这里插入图片描述
八、querystring模块
可以将querystring参数解析为一个对象

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值