nodejs学习(1)

一、nodejs模块化

  1. js文件中想要让别的模块(js文件)使用,需要导出
    module.exports = 导出的数据
生成一个随机整数小例子
function randomInt(max){
	max = max || 100
	// 不包含max
	return parseInt(Math.random() * max)
}

function randomRange(min, max){
	
	min = min || 0
	max = max || 100
	
	return parseInt(Math.random()*(max - min) + min)
}

// 将生成随机整数的函数导出
module.exports = {
	randomInt,
	randomRange
}

2.nodejs中的常用模块(fs模块)
(1)API模块(文件模块、http网络模块):可直接引入使用,写法:var fs = require(“fs”)
(2)fs模块(file system)文件系统模块【增删改查】
(2.1)fs.writeFileSync(“”)用于写入一段文本、一个文件(若文件不存在,会先创建,若存在,直接写入内容,会将原来的内容覆盖)
(2.2)fs函数中分为两个版本sync(同步版本)和不带sync的(异步版本)
(2.3)fs。writeFile(“指定的文件”,“写入的内容”,写入后的回调函数,(err参数))
(3)fs.readFileSync()同步版,读取文件内容的方法(参数:文件路径)
函数返回Buffer类缓存对象,使用toString()转换为字符串
(4)异步版本读取文件
(4.1)fs.readFile(“文件路径”,回调函数(参数1:错误信息 参数2:读取的数据))
(4.2)fs.appendFileSync() 在指定文件夹末尾添加新内容,若文件不存在会先创建文件再添加文件
fs.appendFile(“文件路径”,““异步版函数添加的内容”,回调函数(err)”)
(5)fs.mkdir() make directory 创建一个文件,参数1:要创建的文件路径,参数2:回调函数
(6)**fs.copyFile()**复制文件 参数1:要复制的文件路径 参数2:目标路径,3.回调函数
(7)**fs.unlink()**删除文件

3.正则表达式
3.1 正则表达式是由一些特殊的字符组成的字符串
3.2 js中内置RegExp、reqular、expression类 ,正则表达式类型
3.3 js 构造对象,参数就是正则表达式的匹配规则:
3.4 默认正则表达式只会匹配第一个符合条件的字符
3.5 表达式/g 表示匹配所有 返回数组,数组中就是符合条件的字符
3.6 match() 找出所有符合正则规则的数据
3.7 赋值操作也可以看做一个表达式,表达式的值说就是赋的值

4.http模块
4.1 nodejs中自带的一个模块,用于创建http服务,也可以作为客户端发起请求
4.2 写法: var http = require(“http”)
4.3 http.createServer() 方法创建一个http服务,参数:监听函数
参数1:request 请求 (req) 参数2:response相应(res)
4.4 回调函数返回一个对象 var app = http.createServer(function(req, res){ }
4.5 setHeader() 添加响应头:res.setHeader(“Content-Type”, “text/html;charset=utf-8”)
4.6 读取本地的html文件:var html = fs.readFileSync("./文件名").toString()
4.7 res.end() 用于向响应体中写入数据,并发送给客户端,结束本次请求
4.8 app.listen(端口,回调函数) 方法,用于开启服务器监听
参数1 监听端口号,服务器开启监听成功后回调的函数
开启端口监听成功后,每当本机8080端口收到数据时,服务器对象监听函数就会被调用
app.listen(8080, function(){console.log(“服务器已开启…”)})
4.9 http模块作为客户端,发起请求:https.get() 用于发送get请求 参数就是服务器返回的响应
data事件 服务器返回数据,有可能数据采用分段返回,执行回调函数

https.get("https://www.readnovel.com/free/all", function(response){
	// 声明变量接收所有的数据
	var str;
	response.on("data", function(chunk){
		// 拼接完整数据
		str += chunk
	})
	// end事件,服务器响应结束
	response.on("end", function(){	
		console.log(str)
	})
})

5.path模块
5.1 path 路径,文件路径,某个文件在磁盘上的位置
5.2 文件路径按照完整性区分:相对路径和绝对路径
5.3 相对路径是一个不完整的路径,忽略了开头的盘符和顶层文件位置
5.4 ./ 表示当前目录 …/表示上层目录
5.5 绝对路径是一个完整路径,包含盘符和所有上层文件夹
5.6 path.join()将两个路径拼接到一起
5.7 path.resolve() 将相对路径转换为绝对路径**
5.8 extname()获取路径中的文件扩展名
5.9 basename()获取路径中的文件名

6.url模块

// url : uniform resource locator 统一资源定位
// 协议名://域名:端口/资源路径/...?参数..#哈希值

// url地址也分为相对地址和绝对地址
// 绝对url: 以协议名开头
// https://www.baidu.com

// 相对url,不以协议名开头的url,可以ip或域名开头,也可以是资源路径开头

// 1. 以/开头 相对于当前页面的url根路径
// /book/11555460004770103

// 2.不以/开头 相对于当前页面的url路径
// book/11555460004770103

// 当前页面地址:127.0.0.1/aaa/bbb
// 使用/123.jpg 实际访问地址127.0.0.1/123.jpg
// 使用123.jpg 实际访问地址127.0.0.1/aaa/bbb/123.jpg

// url模块是nodejs中的内置模块,用于处理url地址

var url = require("url")

var urlStr = "https://www.readnovel.com/free/all?pageSize=10&gender=2&catId=-1&isFinish=-1&isVip=1&size=-1&updT=-1&orderBy=0&pageNum=2"

// url.parse() 解析一个url地址,返回一个url对象
var urlObj = url.parse(urlStr)

console.log(urlObj)

// urlObj.protocol 协议名
// urlObj.host 主机地址
// urlObj.hostname 主机域名
// urlObj.query 参数字符串


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值