了解node.js和简单应用(http,fs,url)
node js介绍
1.干嘛用的
写后台管理程序的,与之类似的有php .net java等。
2.主要应用于
数据服务,文件服务,web服务
3.优势
性能高,方便、入门难度低、大公司都在用(BAT)
4.劣势
- 服务器提供的相对较少
- 相对于其它语言,能用得上的学习资料少
- 对程序员的要求高
5.安装
在官网下载相应的文件,安装,是否安装成功检测:win+r->命令行(输入cmd)->node -v
6.运行node.js文件方式(输上命令之后按"回车"就运行了)
1.在window上运行node.js的方式
-
a. 找到目标目录-》地址栏输入cmd-》node 文件名.js | node 文件名
-
b. 当前目录->右键->git bash-> node 文件名
2.在苹果上运行node.js文件
- 终端->cd 目录-> node 文件名.js | node 文件名
3.在 vscode 上运行node.js文件
- 新建终端->cd 目录->node 文件名.js | node 文件名
7.开发注意
nodejs 使用的是ECMA语法,不可使用DOM,BOM
8.引入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() 结束响应 必须
})
- 例子
//1.引入http模块
const http = require("http")
//2.创建http服务对象
//http.createServer(回调函数)
const app = http.createServer((req,res)=>{
console.log("前端访问我了...")
//后端需要设置响应头 后端设置的权重高
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
res.write("你好!")
res.write(`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
你好呀!大兄弟
</body>
</html>`)
res.end() //后端需要结束响应 必须要写的
})
//3.监听端口
app.listen(8000,"localhost",()=>{
console.log("server in running....")
})
9.监听服务器
app.listen(端口,[地址],[回调])
10.fs模块
- 磁盘操作,文件操作,读取
fs.readFile('文件路径',[编码方式],(err,data)=>{})
提示:err 错误,null没有错误
变量 = fs.readFileSync('文件路径')
提示:错误处理
try{要排错的代码}catch(e){}
- 例子
let fs = require("fs") //引入了系统模块fs (进行文件相关操作)
//文件读取
//fs.readFile('地址',回调函数)
// fs.readFile("./html/index.html","utf-8",(err,data)=>{
// console.log("err",err) //如果文件读取成功,err就是null
// console.log("data",data) //data就是读取后的文件内容
// })
11.更名
fs.renameSync('改前','改后');
- 删除
fs.unlinkSync('文件路径')
12.url模块
url.parse(str,true) 返回 对象 true处理query为对象
- 例子
let url = require("url")
//把url字符串转成Url对象
let str = "http://www.baidu.com:80/app/html/index.html?a=1&b=2#title" //(8分)
let obj = url.parse(str,true)