JBL T280TWS X 真无线蓝牙耳机 入耳式防水防汗音乐运动跑步耳机 通话降噪耳机
首页 服务器 NodeJs
nodejs利用readline提示输入内容实例代码
目录 前言 1. bat执行js 2. 终端提示输入版本号、执行打包命令 3. 修改版本号文件 总结 前言 最近进行小版本发包测试时忘记修改版本号了,进而想到在打包前提示输入版本号,然后把版本号打进版本说明内。最终效果为双击bat文件在终端内提示输入版本号,输入完成后保存版本号。 虽说批处理也可以做这事,但用js来写更得心应手点,故选用js处理。 过程分为四步 bat执行js 终端提示输入版本号、执行打包命令 修改版本号文件 gulp读取版本号json文件 简单来说是用bat文件触发打包命
2021-07-15 86
详解NodeJS模块化
一、前言 我们知道,Node.js是基于CommonJS规范进行模块化管理的,模块化是面对复杂的业务场景不可或缺的工具,或许你经常使用它,但却从没有系统的了解过,所以今天我们来聊一聊Node.js模块化你所需要知道的一些事儿,一探Node.js模块化的面貌。 二、正文 在Node.js中,内置了两个模块来进行模块化管理,这两个模块也是两个我们非常熟悉的关键字:require和module。内置意味着我们可以在全局范围内使用这两个模块,而无需像其他模块一样,需要先引用再使用。 无需 require('require') or require('module')
2021-06-15 118
NodeJs内存占用过高的排查实战记录
前言 一次线上容器扩容引发的排查,虽然最后查出并不是真正的 OOM 引起的,但还是总结记录一下其中的排查过程,整个过程像是破案,一步步寻找蛛丝马迹,一步步验证出结果。 做这件事的意义和必要性个人觉得有这么几个方面吧: 从程序员角度讲:追求代码极致,不放过问题,务必保证业务的稳定性这几个方面 从资源角度讲:就是为了降低无意义的资源开销 从公司角度讲:降低服务器成本,给公司省钱 环境:腾讯 Taf 平台上运行的 NodeJs 服务。 问题起因 最开始是因为一个定时功能上线后,线上的容器自动进行了扩容,由于 NodeJs 服务本身只有一些接口查询
2021-05-10 100
详解nodejs内置模块
概述 nodejs内置模块指的是除默认提供的语法之外,提供的美容,无需下载,直接引入,引入只写名称即可。 nodejs内置模块: 1、path模块  用于处理文件路径。 path.normalize(路径解析,得到规范路径); path.join(路径合并); path.resolve(获取绝对路径); path.relative(获取相对路径)。 ...... 2、until模块  弥补js功能不足,新增API。 util.format(格式化输出字符串); util
2021-05-06 64
浅谈JS和Nodejs中的事件驱动
事件驱动和发布-订阅 事件驱动架构是建立在软件开发中一种通用模式上的,这种模式被称为发布-订阅或观察者模式。 在事件驱动架构中,至少有两个参与者:主题(subject)和观察者(observer)。 主题就像调频收音机一样,向有兴趣收听该主题所说内容的观察者进行广播。 观察者可能只有一个,也可能有一百个,这都没有关系,只要主题有一些要广播的消息就够了。 请记住,事件驱动、发布-订阅和观察者模式在实践中不是一回事,但在理想情况下,它们使用相同的方法:一个实体广播一条消息,其他实体侦听该消息。 发布-订阅模式和我一样老。在 1987 年左右开始理论化,而观察者模
2021-05-05 68
NodeJS和浏览器中this关键字的不同之处
前言 学习过JavaScript的人肯定清楚 处在不同环境下this的指向问题。那么看下面的代码 var type = 1 function toWhere(){ this.type = 2; } toWhere(); console.log(type) 你们肯定会这样想: 这里声明了一个全局变量type,当执行type=1的时候,赋值为1。之后toWhere函数调用,看到函数中有this 就去判断this的指向,这里很清楚,this指向了window,this.type=2执行后,全局变量type就赋值为2了。 最后打印全局变量type 结果很明显是2。
2021-03-03 83
nodejs处理tcp连接的核心流程
前几天和一个小伙伴交流了一下nodejs中epoll和处理请求的一些知识,今天简单来聊一下nodejs处理请求的逻辑。我们从listen函数开始。 int uv_tcp_listen(uv_tcp_t* tcp, int backlog, uv_connection_cb cb) { // 设置处理的请求的策略,见下面的分析 if (single_accept == -1) { const char* val = getenv("UV_TCP_SINGLE_ACCEPT"); single_accept = (val != NULL && atoi(v
2021-02-26 76
Nodejs 数组的队列以及forEach的应用详解
本文主要记录了在Nodejs开发过程中遇到过的由数组特性引起的问题及解决方式,以及对数组的灵活应用。 本文代码测试结果均基于node v6.9.5 数组与队列 利用数组对象方法push/shift可实现队列先进先出特性,例如: >a=[] [] >a.push(2.3.4) 3 >a.push(2) 3 >a [2.3.4.2] >a.shift() 2 >a >[3.4.2] 数组与forEach 对数组的删除操作有两种常见方式:delete和使用splice方法,需要明确他们的区别。 操作/方法
2021-02-25 68
一文秒懂nodejs中的异步编程
文章目录 简介同步异步和阻塞非阻塞javascript中的回调回调函数的错误处理回调地狱 ES6中的Promise什么是PromisePromise的特点Promise的优点Promise的缺点Promise的用法Promise的执行顺序 async和awaitasync的执行顺序async的特点 总结 简介 因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。但是对于最开始在浏览器中运行的javascript来说,单线程的同步执行环境显然无法满足页面点击,鼠标移动这些响应用户的功能。于是浏览器实现了一组API,可以让javascript以回调的方式来异步
2021-01-28 72
在nodejs中创建child process的方法
简介 nodejs的main event loop是单线程的,nodejs本身也维护着Worker Pool用来处理一些耗时的操作,我们还可以通过使用nodejs提供的worker_threads来手动创建新的线程来执行自己的任务。 本文将会介绍一种新的执行nodejs任务的方式,child process。 child process lib/child_process.js提供了child_process模块,通过child_process我们可以创建子进程。 注意,worker_threads创建的是子线程,而child_process创建的是子进程。 在child_proc
2021-01-26 80
nodejs中使用worker_threads来创建新的线程的方法
简介 之前的文章中提到了,nodejs中有两种线程,一种是event loop用来相应用户的请求和处理各种callback。另一种就是worker pool用来处理各种耗时操作。 nodejs的官网提到了一个能够使用nodejs本地woker pool的lib叫做webworker-threads。 可惜的是webworker-threads的最后一次更新还是在2年前,而在最新的nodejs 12中,根本无法使用。 而webworker-threads的作者则推荐了一个新的lib叫做web-worker。 web-worker是构建于nodejs的worker_threads之上的,
2021-01-22 144
Nodejs 微信小程序消息推送的实现
选择或创建订阅消息模板 登录到微信小程序里面找到功能->订阅消息。可以在公共模板库里选择需要的模板,如果没有找到自己需要的也可以自己创建然后等待审核、 选择完模板查看详情会得到模板ID,以及发送推送时需要的字段、 小程序发送订阅的请求 需要用到上一步获取的模板Id // 小程序 <Text className='rights-buy' onClick={this.messageSubmit}> 入驻申请 </Text> // 入驻申请消息订阅 messageSubmit = () => { Taro.requestS
2021-01-20 65
Nodejs实现微信分账的示例代码
公司的业务的场景需要用到微信分账的功能、对着官网文档调试了一下午才调通、记录下使用Nodejs微信分账的流程。 前提条件 在微信商户平台 产品中心->我的产品,支付扩展工具中 开通分账的功能 添加分账接收方。 这一步不设置的话回报一个*分账接收方关系不存在,请检查参数中每个接收方的关系。*错误 在商户平台获取商户id和secrect 需要将apiclient_cert.pem、 apiclient_key传到服务器某个目录下面 具体实现 // @router post -> share -> /common/payment/share
2021-01-19 95
nodejs中的异步编程知识点详解
简介 因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。但是对于最开始在浏览器中运行的javascript来说,单线程的同步执行环境显然无法满足页面点击,鼠标移动这些响应用户的功能。于是浏览器实现了一组API,可以让javascript以回调的方式来异步响应页面的请求事件。 更进一步,nodejs引入了非阻塞的 I/O ,从而将异步的概念扩展到了文件访问、网络调用等。 今天,我们将会深入的探讨一下各种异步编程的优缺点和发展趋势。 同步异步和阻塞非阻塞 在讨论nodejs的异步编程之前,让我们来讨论一个比较容易混淆的概念,那就是同步,异步,阻塞和
2021-01-17 87
nodejs+express最简易的连接数据库的方法
环境搭建 1.首先需要自行安装node环境 2.然后全局安装 express npm install -g express 3.创建express项目文件夹 express创建项目默认为jade模板引擎,若使用其他引擎,使用命令切换 express node_demo -e (选择ejs模板) // 在项目名称的后面添加 -e 那么创建出来的模板文件就是.ejs类型,语法是与html相同的 在vscode中打开我们建好的项目,目录如下: 对于ejs看着不习惯的同学可以将其改为html,如下: 然后还需要将在views新建一个index.html 与
2020-12-23 68
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并卸载。 第二步:安装nvm管理工具(先关掉360等软件,不然会弹出警告!
2020-12-14 79
NodeJS配置CORS实现过程详解
跨域问题主要在header上下功夫 首先提供一个w3c的header定义 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 再提供一个网友提供的header详解 http://kb.cnblogs.com/page/92320/ 这两个有助于帮助大家理解header的类型和作用, 但是遗憾的是跨域相关的两个header属性我都没有找到相关的定义, 下面直接告诉大家 1是Access-Control-Allow-Origin 允许的域 2是Access-Control-Allow-Headers 允许的header类型 第一项
2020-12-02 88
如何利用nodejs自动定时发送邮件提醒(超实用)
需要先安装插件 npm install Nodemailer --save index.js global.SG = { nodemailer: require("nodemailer")//发送邮件需要的服务 }; sg.js //发送邮件参数:收件人(支持群发)、主题、正文(支持html格式)---------------------------------------- sendMail(to, subject, html) { //下面这几个改成你自己的邮箱、昵称和授权码 const user = "ATS-V@QQ.COM"; con
2020-12-01 83
nodeJs项目在阿里云的简单部署
nodeJS在阿里云的简单部署,供大家参考,具体内容如下 日志样例 近期将毕设的基本接口写完,全部采用nodeJS+express完成,前些天初步部署了一下,发现node真的是个好东西,记录一下自己部署上阿里云服务器的简单经验,本人的服务器是学生版的阿里云服务器ECS的Ubuntu版本,安装了mysql数据库、nodeJS 10.15.0、Nginx静态资源服务器,这是前提。 安装node 首先得先在服务器上安装好node,可以自行百度如何在ubuntu上命令行下载安装node 确定自己服务需要使用的端口 在后端服务部署前,我们得确认自己的服务将使用哪些端口,然后在阿里云控制台
2020-11-27 62
如何利用nodejs实现命令行游戏
本文以贪吃蛇为例, 一步一步地分析如何实现一个命令行游戏. 实现原理 命令行输入 通过 process.stdin 监听命令行输入的按键, 改变小蛇的前进的方向 画面渲染 通过 ANSI 转义序列 擦除之前的输出 通过 process.stdout 每隔一段时间将画面帧输出到命令行 源码解析 监听按键事件 使用过 yarn upgrade-interactive 命令更新 npm 依赖, 或者使用过 vue-cli 等脚手架创建过新项目的同学应该都见过: 这些工具会在命令行输出很多选项, 通过上下按键可以移动焦点, 通过空格键可以选择 那么这些操作是如何
2020-11-24 58
NodeJS模块Buffer原理及使用方法解析
Buffer 作为 nodejs 中重要的概念和功能,为开发者提供了操作二进制的能力。本文记录了几个问题,来加深对 Buffer 的理解和使用: 认识缓冲器 如何申请堆外内存 如何计算字节长度 如何计算字节长度 如何转换字符编码 理解共享内存与拷贝内存 认识 Buffer(缓冲器) Buffer 是 nodejs 核心 API,它提供我们处理二进制数据流的功能。Buffer 的使用和 ES2017 的 Uint8Array 非常相似,但由于 node 的特性,专门提供了更深入的 api。 Uint8Array 的字面意思就是:8 位无符号整型数组。一
2020-11-11 65