http,fs,url,querystring;模块--commmonjs模块化

http模块

let http = require('http')

创建web服务 返回http对象

let app = http.createServer((req,res)=>{
	req 请求体  浏览器->服务器
	req.url  地址   提取地址栏数据
	
	req.on('data') 提取非地址栏数据 所有的http[s]都会触发end事件
	req.on('end') 
	
	res 响应  服务器->浏览器
	res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});响应头设置
	res.write(字符/数据<string><buffer>) 返回数据
	res.end() 结束响应 必须
})

监听服务器

app.listen(端口,[地址],[回调])

监听成功,回调一次

端口: 1-65535 1024以下系统占用

虚拟地址localhost 真实域名xx.duapp.com

更新后,需要每次服务器自动重启

推荐命令行工具:supervisor | nodemon

安装方式: npm install supervisor -g

fs模块

引入fs模块

let fs= require(‘fs’)

磁盘操作,文件操作 ,读取静态资源,读取文件 文件操作的结果都是"异步"的

读取
fs.readFile('文件路径',[编码方式],(err,data)=>{})

例;
 fs.readFile("./www/node.html",'utf-8',(err,data)=>{
		[^err ]: err 错误 ,null没有错误
		[^data]: 数据,buffer流
 })
变量 = fs.readFileSync('文件路径') 

处理错误

try{
要排错的代码
}catch(e){//e捕捉错误
上边报错将不影响catch的代码执行
}

更名
fs.renameSync('改前','改后');

代码格式;
 let result = fs.renameSync("./www/index.html","./www/node.html",(err)=>{console.log(err);
 });
删除
fs.unlinkSync('文件路径')
代码格式;
fs.unlinkSync("./www/a.html");

静态资源托管

什么是静态资源

xx.css xx.html xx.js xx.图片 xx.json xx.字体

前端资源请求

<a href=".."></a>
<img src="..."/>
location.href="..."
body{
    background:url(....)
}

后端资源读取

fs.readFile(文件名,[编码方式],回调(err,data));

接口实现

前端

表单:get/post/put/delete/…

js: ajax/jsonp

后端

处理方式:http[s]

​ address: req.url 抓取 get请求的数据 切字符 | url模块

​ !address: req.on('data',(chunk)=>{CHUNK==每次收到的数据buffer})

req.on('end',()=>{ 接收完毕 切字符 querystring })

url模块

作用

处理 url型的字符串

用法

let url = require('url')
url.parse(str,true)  返回 对象	true处理query为对象

str -> obj 返回 对象 true
protocol: ‘http:’, 协议
slashes: true, 双斜杠
auth: null, 作者
host: ‘localhost:8002’, 主机
port: ‘8002’, 端口
hostname: ‘localhost’, baidu
hash: ‘#title’, 哈希(锚)
search: ‘?username=sdfsdf&content=234234’, 查询字符串
query: ‘username=sdfsdf&content=234234’, 数据
pathname: ‘/aaa’, 文件路径
path: ‘/aaa?username=sdfsdf&content=234234’, 文件路径
href: ‘http://localhost:8002/aaa?username=sdfsdf&content=234234#title’

url.format(obj) 返回字符

obj -> str 返回str

querystring 模块

作用

处理查询字符串 如:?key=value&key2=value2

用法

querystring.parse(str) 返回对象
querystring.stringify(obj) 返回字符串

模块化 commonJS

介绍

是主要为了JS在后端的表现制定,commonJS 是个规范 nodejs / webpack 是一个实现

ECMA 是个规范 js / as 实现了他

其他模块化规范:seajs.js / require.js CMD/AMD/UMD es5

作用

是变量具有文件作用域,不污染全局变量

系统模块

http fs querystring url

输入

require('模块名')
require('模块名').xx  按需引用

不指定路径:先找系统模块-> 再从项目环境找node_modules|bower_components (依赖模块)->not found

指定路径 : 找指定路径 -> not found

支持任何类型

输出

exports.自定义属性1 =| any
exports.自定义属性2 =| any
....

批量输出 都是属性

可输出多次

module.exports =| any		

默认输出,只能输出一次

注意

commonJS 是 nodejs 默认模块管理方式,不支持es6的模块化管理方式,但支持所有es6+语法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值