当前位置: 首页 > news >正文

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  //其它跨域都是无效
})

multer


相关文章:

  • 开发小技巧
  • 【云原生 | 29】Docker运行大数据经典分布式平台Hadoop
  • onnx支持的pytorch(aten)算子
  • 外汇天眼:英国央行加息50个基点 英国可能已经陷入衰退
  • 如何在树莓派上安装cpolar内网穿透
  • NIPS 22: GGD Rethinking and Scaling Up Graph Contrastive Learning
  • 微信小程序登录
  • WebDAV之葫芦儿·派盘+可达漫画
  • maven多个moduled,打包target没有class文件
  • 计算机毕业设计之java+javaweb的美容院管理系统
  • 微服务应用性能分析实战05 故障定位:Java VisualVM,第一款多合一的轻量可视化工具
  • 【优化调度】基于粒子群算法解决经济调度附Matlab代码
  • 第七章、优化算法
  • 关于HashMap中重写equals与hashcode的一下问题
  • 互亿无线语音通知平台常用使用场景及接入指南
  • [nginx文档翻译系列] 控制nginx
  • 【comparator, comparable】小总结
  • 【技术性】Search知识
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • bootstrap创建登录注册页面
  • ES6语法详解(一)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java程序员幽默爆笑锦集
  • Java多态
  • js
  • python学习笔记-类对象的信息
  • Vue 动态创建 component
  • 开源地图数据可视化库——mapnik
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 删除表内多余的重复数据
  • 突破自己的技术思维
  • 写代码的正确姿势
  • 最近的计划
  • ​Spring Boot 分片上传文件
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Java)【深基9.例1】选举学生会
  • (Java数据结构)ArrayList
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (五)c52学习之旅-静态数码管
  • (小白学Java)Java简介和基本配置
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Scala的“=”符号简介
  • (转)为C# Windows服务添加安装程序
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net 中viewstate的原理和使用
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net解析传过来的xml_DOM4J解析XML文件
  • [BT]BUUCTF刷题第4天(3.22)