nodejs系列

Nodejs介绍

  • Node.js是一个Javascript运行环境(runtime)。它让JavaScript可以开发后端程序,它几乎能实现其他后端语言能实现的所有功能。单线程
  • Node是基于Google V8引擎,V8引擎是Google发布的一款开源的JavaScript引擎。
  • Nodejs最擅长高并发

进程和线程

进程

  • 进程负责为程序的运行提供必备的环境、
  • 进程就相当于工厂的车间

线程

  • 线程计算机中的最小的计算单位,线程负责执行进程中的程序
  • 线程就相当于工厂中的工人

NPM介绍

npm是世界上最大的开放源代码的生态系统,npm是随同NodeJS一起安装的包管理工具

npm命令

  • npm init --yes 生成package.json文件
  • npm install md5 --save(cnpm加上save可以让配置dependencies中添加md5的配置信息,npm则可以省略,会默认加上)
  • npm install 包 -save-dev 添加到devDependencies配置中
  • npm uninstall md5 卸载模块
  • npm i 根据package.json文件配置生成node_modules
  • npm list 查看当前目录下已安装的node包
  • npm info 模块 查看模块的版本
  • npm install 模块@1.8.0 指定版本安装

模块化 CommonJs

CommonJs就是模块化的标准,node就是CommonJs(模块化)的实现

  • 通过exports或者module.exports暴露属性或者方法
  • 通过require的方式引入模块

方式一:exports导出

语法:
exports导出
exports.xxxx=xxxx
cosnt a = require('地址')
打印a {xxxx:{}}

方式二:module.exports (只有一个对象推荐使用)

module.exports=obj
cosnt a = require('地址')
打印a {}

通过require引入的时候会发生两种情况

  • 在被引入的文件node_modules文件夹下,引入是地址可以省略node_modules
    例: node_modules
    axios
    index.js
    db
    db.js
    这样的目录结构
  • require('./axios') 当文件是index可以省略
  • require('db.db')
    这种情况可以直接在db文件夹下npm init --yes 生成一个package.json文件
    之后就可以这样引入require('db')
    执行机制是package.json文件中的main

三个核心模块

http src Fs

http的使用

//request 获取url穿过来的信息
//response 给浏览器的响应信息
const http = require('http');
http.createserver((request,response)=>{const method = req.method;  //获取请求方式 "GET"/"POST"...const url = req.url;//获取请求的地址const path = req.url.split('?')[0];const query = qs.parse(req.url.split('?')[1]);response.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'})response.write(<head><meta charset="utf-8"/></head>)response.end()  
}).listen(3001)

src

待补充……

Fs

引入:const fs = require(‘fs’);

方法

  • fs.stat 检测时文件还是目录
  • fs.mkdir 创建目录
  • fs.writeFile 创建写入文件
  • fs.appendFile 追加文件
  • fs.readFile 读取文件
  • fs.rename 重命名 移动文件
  • fs.rmdir 删除目录
  • fs.unlink 删除文件

自定义模块

  • 第三方的模块,由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理

包目录

  • package.json:包描述文件
  • bin:用于存放可执行二进制文件的目录
  • lib:用于存放JavaScript代码的目录
  • doc:用于存放文档的目录

安装supervisor

  • 作用,不用每次写入新的内容之后关闭服务,再打开服务
  • 安装 cnpm install -g supervisor

querystring获取get参数

  • 引入 const querystring = require('querystring')
  • 使用 querystring.parse(url.split(’?’)[1])

安装cnpm

$ npm install cnpm -g --registry=https://registry.npm.taobao.org

package.json的配置

标识符

  • ^表示第一位版本号不变,后面两位取最新的
  • ~表示前两位不变,最后一个取最新
  • *表示全部取最新
  • 指定版本安装,直接去掉符号即可

后端渲染的好处

利于seo优化

nodejs和前端的javascript的区别

server开发和前端开发的区别,重点在于切换思路

http请求概述

  • DNS解析,简历TCP链接,发送http请求
  • server接收到http请求,处理,并返回
  • 客户端接收到返回数据,处理数据(如渲染页面,执行js)

lodash的使用(暂时放在这)

  • npm i lodash
  • const _ = require(‘lodash’);
  • const arr = _.concat([1,2,4,[5,6]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo-go-Mesh 开启新一代 Go 微服务形态

简介&#xff1a;Proxyless Service Mesh 能力将跟随 Dubbo-go 下一版本发布&#xff0c;稳定的性能需要社区成员们共同的关注与建设。在此基础之上&#xff0c;我们还会进一步探索轻量级 sdk sidecar的模型&#xff1b;探索基于第三方流量治理组件的金丝雀发布能力&#xff1…

2022数据安全技术大会举办

9月6日&#xff0c;2022数据安全技术大会暨中国信息协会信息安全专业委员会年会在北京举行。本届大会由中国信息协会信息安全专业委员会主办、中国信息协会信息安全专业委员会数据安全技术工作部和天空卫士联合承办&#xff0c;逾3000家企业线上参与。 国家信息中心副主任周民…

css默认样式以及解决办法

display:inline-block元素之间存在缝隙如何解决&#xff1f; 父级添加font-size&#xff1a;0; 解决前 解决后 vertical-align是干嘛的&#xff1f; 属性设置元素的垂直对齐方式 场景&#xff1a;垂直对齐一幅图像 属性&#xff1a; baseline 默认。元素放置在父元素的基线…

如何发起 MQTT 亿级连接和千万消息吞吐性能测试

简介&#xff1a;MQTT 协议凭借简单易实现、支持 QoS、报文小等特点&#xff0c;占据了物联网协议的半壁江山。 作者&#xff1a;亦炎 随着 5G 时代的来临&#xff0c;万物互联的伟大构想正在成为现实。联网的物联网设备 在 2021 年已经达到了 120 亿&#xff0c;在未来两年&…

亚信安全勒索治理「方舟」正式上线, 勒索体检中心全面开放

&#xff08;引言&#xff1a;现代勒索病毒攻击已成为网络安全最大威胁&#xff0c;隐秘深&#xff0c;破坏力巨大&#xff01;如何能够做到提早防范&#xff0c;有效应对&#xff1f;&#xff09; 【亚信安全】-【2022年9月9日】亚信安全勒索治理「方舟」正式发布&#xff01…

阿里云云原生应用平台总经理丁宇:“连接、合作、赋能”,携手加速器伙伴助力企业云上创新

简介&#xff1a;阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇表示&#xff0c;如果用三个词来形容我们希望达到的效果&#xff0c;就是连接、合作、赋能。 云原生加速器路演导师评委 进入数智化时代&#xff0c;云上创新是企业加速数字化转型、提升竞争力的必经之路。…

ts基础认识

基础数据类型 number string bolean 字面量 值本身&#xff0c;例man,woman any 任意类型 unknown 实际上就是一个类型安全的any void 没有值或undefined never 表示永远不会返回结果 object ar…

聚焦业务价值:分众传媒在 Serverless 上的探索和实践

简介&#xff1a;随着业务规模的增长&#xff0c;业务方对后台服务的弹性诉求越来越强怎么办&#xff1f;云原生峰会前线最佳落地实践心得分享&#xff1a;看分众传媒如何借助 Serverless 函数计算提升 80% 开发运维效率&#xff0c;有效降低计算成本~ 作者 | 吴松&#xff08;…

当Unity实时3D引擎遇上AI虚实交互,Unity要成为元宇宙时代的新引擎

游戏引擎巨头Unity&#xff0c;还在为蔚来、小鹏、理想等14家车厂提供智能座舱等解决方案&#xff0c;以及为香港机场、北京城建、海尔卡奥斯提供数字孪生方案。实时3D引擎&#xff0c;也将是元宇宙时代的核心支撑。 编辑 | 宋慧 出品 | CSDN AI 领域的年度盛会——2022世界人…

告警运维中心|构建高效精准的告警协同处理体系

简介&#xff1a;基于报告&#xff0c;ARMS 能快速的整合上下文&#xff0c;包括 Prometheus 监控进行监控。还有前端监控的相关数据&#xff0c;都会整合到报告里面&#xff0c;进行全方位检测来收敛相关问题。 作者&#xff1a;延福 在开始正式内容前&#xff0c;我想跟大家…

01let和const

1.1 let 作用 声明局部变量 特性 不存在变量提升不能重复声明不作为window属性块级作用域暂时性死区&#xff08;声明前不能使用&#xff09; 1.2 const 作用 生成常量 特性 与let一致 globalThis 对象 Es5模块中的this是windowEs6模块中的this是undefined函数中的this&…

数字人技术在直播场景下的应用

作者 | 薄志浩本文介绍了在数字人AI技术发展迅猛&#xff0c;整体AI数字人市场呈现高速增长的趋势下&#xff0c;与强调高实时性互动的直播业务场景的结合与应用&#xff0c;通过数字人渲染技术、强大的AI全栈能力、算力为虚拟主播赋能&#xff0c;在面部表情、肢体动作、问答对…

CNCF 沙箱项目 OCM Placement 多集群调度指南

简介&#xff1a;在这篇文章中&#xff0c;将介绍 Placement 如何选择到所需的集群&#xff0c;Placement 可以提供的调度功能&#xff0c;以及一些场景下的最佳实践&#xff0c;使用者可以参考示例来编写符合自己要求的 Placement。其他一些高级调度功能&#xff0c;如支持污点…

02 解构赋值

解构赋值 1.1 什么是解构赋值 允许按照一定模式&#xff0c;从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这被称为解构 只要某种数据结构具有 Iterator 接口&#xff0c;都可以采用数组形式的解构赋值 1.2 数组解构赋值和对象解构赋值的区别 数组的元素是按次…

如何帮助业务丝滑配置?阿里巴巴用了 11 年的“功能开关” 是什么?

简介&#xff1a;AHAS 功能开关是一个轻量级的动态配置框架&#xff0c;通过功能开关可以动态管理代码中的配置项&#xff0c;根据需求为某个应用开启或关闭部分功能&#xff0c;或设置某个性能指标的阈值。功能开关通常用于设置黑白名单、运行时动态调整日志级别、降级业务功能…

摆脱 AI 生产“小作坊”:如何基于 Kubernetes 构建云原生 AI 平台

简介&#xff1a;本文将介绍和梳理我们对云原生 AI 这个新领域的思考和定位&#xff0c;介绍云原生 AI 套件产品的核心场景、架构和主要能力。 作者&#xff1a;张凯 前言 云原生&#xff08;Cloud Native&#xff09;[1]是云计算领域过去 5 年发展最快、关注度最高的方向之一…

Node 之父斥责 Oracle:你们也不用,那请交出 JavaScript 商标!

整理 | 苏宓出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;也许 13 年前&#xff0c;Oracle 以 74 亿美元收购 Sun Microsystems 公司时&#xff0c;也不会想到自己后续要牵扯到诸多的版权诉讼与投诉的漩涡之中。众所周知&#xff0c;Oracle 在收购 Sun 之后&…

mobx的使用

mobx的使用 1、API mobx-react Provider 包裹根组件&#xff0c;用于传递数据observer 组件变为响应式inject 接收mobx实例(用于类组件)MobXProviderContext mobx observable 声明变量action 声明函数用于修改observable 的值makeObservable 更新状态 2、安装 yarn add mo…

OPLG:新一代云原生可观测最佳实践

简介&#xff1a;OPLG 体系拥有成熟且富有活力的开源社区生态&#xff0c;同时也经过了大量企业生产环境的实践检验&#xff0c;是当下建设新一代云原生统一可观测平台的热门选择。但是&#xff0c;OPLG 只是提供了一个技术体系&#xff0c;如何灵活运用&#xff0c;解决实际问…

EventBridge 集成云服务实践

简介&#xff1a;本篇文章主要向大家分享了通过 EventBridge 如何集成云产品事件源&#xff0c;如何集成云产品事件目标以及通过事件流如何集成消息产品。 作者&#xff1a;李凯&#xff08;凯易&#xff09; EvenBridge 集成概述 EventBridge 是阿里云所推出了一款无服务器…