一、体验node
创建server.js文件 从中输出console.log()可以从git中查阅
二、启动服务器
如何启动一个服务 本地启动一个服务
当前的电脑就是一个默认的本地服务器 :挂载很多的服务 后端代码的服务器
端口:计算机与外界通讯交流信息的接口
Node.js 非常遵循模块化编程
webpack.config.js 路径 path模块
启动服务器 node http模块
引入模块
const http = require('http') //引入模块
//requset 接受 前端发送过来的内容
//response 返回数据时用的参数
const server = http.createServer((req.res)=>{
res.write('hello') //给前端发送的值
res.end() //或可以直接写成res.end('hello')
})
server.listen(8080) //端口号
三、处理静态文件
需要引入相应的模块 fs 模块
写入静态文件 fs.writefile(路径,回调函数)
读取静态文件fs.readfile(路径,回调函数)
一般情况下回调函数写作(err,data){}err:表示是否存在错误的情况,data即为读取的内容
const fs = require("fs") //引入fs 模块
//写入内容
//给前端写入一个hello world
//.writeFile(路径,写入内容,回调函数) 回调函数:写入后执行
//在服务器开发过程中 ,同级目录下 ./
fs.writeFile("./index.txt", "hello world", (err) => {
if (err) { //err 返回错误信息
console.log("写入失败")
}
console.log("成功")
})
//读取内容
// .readFile(路径,回调函数)
// fs.readFile("./index.txt", (err, data) => {
// //data 读取内容
// if (err) {
// console.log('读取文件出错')
// }
// //<Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64> 二进制码
// console.log(data.toString()) //转化为字符串
// })
四、如何在服务端打开静态文件
1.启动服务器
2.读取静态文件
const http = require ('http')
const fs = require ('fs')
//案例使用wwww文件夹下的index.html文件为静态文件
http.createServe((req.res)=>{
fs.readfile('./www${req.url}',(err.data)=>{ //req.url表述前端传输过来的地址
if(err){
res.end('写入失败') //err为true时则带表有错误则给前端传输写入错误
}
else{
res.end(data) //否则写入数据
}
})
}).listen(8088) //简写启动服务器
五、获取get请求中的数据
get属于明文转码:参数都是拼接在api地址后边的,
例如写一个/login接口其中传输过来的有user=wangyi upas=123
则地址参数为 /login?username=wangyi&upass=123
获取api地址参数
url='/login'
par={username:wangyi,upass:123}
可以使用url模块来解析其中的url以及par
//案例 /login?username=wangyi&upass=123
const http=require('http')
const url = require('url')
http.createServer((req.res)=>{
let {pathname,query}=url.pares(req.url)
//其中pathname === /login
//query === {username:wangyi,upass:123} 传输过来的为对象
})
六、获取post传过来的参数
post传过来的req.url仅仅为端口地址
若接收post接口传输过来的数据,则需要模块 quertString
因为post数据是分段传输过来的,则需要增加监听事件
.on为增加监听事件
const http=require('http')
const queryString = require('queryString')
http.createrServer((req.res)=>{
let arr=[] //创建空的数组
req.on('data'data=>{
arr.push(data) //监听data 传输数据的情况,将传输过来的数据加到数组arr中
})
req.on('end',()=>{
let buffer = Buffer.concat(arr) //将ARR数组的数据转化为buffer数据
let result = queryString(buffer.tostring()) //解析将buffer数据转化为string的字】值
//获取到的resule即为获取的值得对象
})
}).listen(8088)