nodejs学习/记忆录(持续更新,补充内容)
前言
该文章,适合于,正在学习nodejs/有nodejs基础,进行记忆,或者说使用。
(文章,前部分) node内置API模块
path
__dirname 获取当前文件夹目录路径(绝对路径)
__filename 获取完整的文件路径(绝对路径)
path.join()和path.resolve() 都是进行一个路径的拼接。
path.join() 不写的时候默认返回一个点(.)
path.resolve() 不写的时候默认返回文件夹绝对路径
path.resole(__dirname) 拼接返回相对路径
path.basename("D:\\class\\node\\index.js") 返回最后文件名+后缀:index.js
path.extname("D:\class\node\\index.js") 返回最后文件名后缀:js
path.isAbsolute("D:/class/node/index.js") 判断是否为绝对路径(返回布尔值)
path.parse(__filename) 返回一个对象 {root:根目录,dir:当前目录, base:文件名,
ext:文件名后缀,name:文件名称}
path.format(obj) obj是path.parse返回的一个对象,
逆向操作返回文件的绝对路径
path.normalize("D:\\class\\node") 规范格式返回,D:\class\node
url
在url中Url是老版本,URL是新版本,用新版本
const {URL}=require("url");
const urlobj=new URL("https://www...")
//urlobj解析的网址,返回一个对象
querystring
let queryString = require("querystring");
let params = "wd=%E8%8D%89%E8%8E%93&pn=20"; //网址get后属性和值
queryString.parse() //解析网址get后属性和值,以键值对形式,返回一个对象
参数1:参数字符串,get后属性和值
参数2:每对键值对的切割符
参数3:键名与键值之间分隔符,默认是=
参数4:规则;如{maxkeys:2} 最多只解析2个,就返回
queryString.stringify(dataObj, ";", ":")
//逆向,解析
let dataObj = {
wd: '草莓',
pn: '20',
}
fs
(文章,后部分) 引入模块
express
const express=require("express");
let app=express() //web服务应用
监听端口
app.listen(4001, () => {
console.log("启动后端服务,开始监听4001端口")
});
监听请求
app.请求方式("")
post请求,接收request.body
get请求,接收request.query
app.get("/",(request,response,next)=>{//request response 和 http模块里原生的一样
next()//才能执行,下一个回调函数
},(request,response)=>{
response.send("ikun")//发给客户端
});
对前端数据,进行处理
app.use(express.json());//对提交的数据进行格式化处理
app.use(express.urlencoded({ extended: true }));//提前处理传过来的数据
静态资源服务器
app.use(express.static("./public"));//静态资源服务器,资源目录指向public目录
对路由,父,子管理的处理
所有开始启动,文件index.js:
app.use("/", require("./router/index"));
路由进入,所有监听router/index.js:
const express=require("express");
const router=express.Router();
//所有监听的路由处理
router.use("/login",require("./login/login.js"));//登录的路由,父路由
module.exports=router;
路由进入,登录路由router/index.js:
const express = require("express");
const router = express.Router();
router.post("/out", (req, res)=>{//业务逻辑处理
res.send({
code:0,
message:"已退出,请重新登录一下"
})
});
module.exports = router;
cors
所有开始启动,文件index.js:
app.use(require("./middleware/cors"));//允许跨域
./middleware/cors.js内容
const cors=require("cors");
module.exports=cors({
//只允许http:/localhost:8080跨域访问
origin:"http://localhost:8080",
credentials:true //其它跨域都是无效
})