node
node
Lvan的前端笔记
十年磨一剑
展开
-
node:glob语法以及常用的文件查找库glob、fast-glob、globby
了解一下glob原创 2023-09-16 23:01:20 · 2059 阅读 · 0 评论 -
node:详解glob模块获取文件路径
Node.js中的glob模块是一个用于匹配文件路径的模块,它可以基于通配符模式快速找到符合条件的文件或文件夹路径。安装完成后,就可以开始使用glob模块了。同步地获取满足指定通配符模式的文件或文件夹路径列表。异步地获取满足指定通配符模式的文件或文件夹路径列表。});通配符模式匹配0个或多个字符?匹配1个字符**匹配所有文件和零个或多个目录// 匹配所有.js文件// 匹配所有的.js文件和.css文件// 匹配所有的.js文件和.js文件所在的子目录下的.js文件。原创 2023-09-13 12:05:24 · 1533 阅读 · 0 评论 -
node:运行shell的几种方式exec、spawn、shelljs
node:运行shell的几种方式exec、spawn、shelljs原创 2023-05-12 16:10:05 · 4021 阅读 · 0 评论 -
node:常用的文件操作fs模块
node文件操作fs模块常用功能原创 2023-05-11 15:39:25 · 1951 阅读 · 0 评论 -
pm2设置开启自启应用
步骤# 1、查看你的应用是否正常启动pm2 list# 2、保存pm2 save[PM2] Saving current process list...[PM2] Successfully saved in /home/gitlab-runner/.pm2/dump.pm2# 3、pm2 startup,执行完会提示让你执行那串脚本,去执行pm2 startup[PM2] To setup the Startup Script, copy/paste the following comma原创 2021-12-28 18:44:58 · 1911 阅读 · 0 评论 -
node:package.json中的type字段含义
1、type字段的产生用于定义package.json文件和该文件所在目录根目录中.js文件和无拓展名文件的处理方式。值为’moduel’则当作es模块处理;值为’commonjs’则被当作commonJs模块处理2、目前node默认的是如果pacakage.json没有定义type字段,则按照commonJs规范处理3、node官方建议包的开发者明确指定package.json中type字段的值4、无论package.json中的type字段为何值,.mjs的文件都按照es模块来处理,.cjs的文件原创 2021-12-07 19:52:38 · 2419 阅读 · 0 评论 -
使用verdaccio 搭建私有npm 服务器
之后更新参考资料https://blog.csdn.net/qq_29594393/article/details/81587989原创 2021-04-07 18:00:09 · 146 阅读 · 0 评论 -
node:pm2配置文件ecosystem.config.js的使用
我们一般部署 node 项目的时候,会使用 pm2。1、我们在项目的根目录创建一个文件,叫 ecosystem.config.js,或者执行 pm2 init simple 同样会生成这样一个文件2、编辑这个文件'use strict'module.exports = { apps: [{ name: 'my-server', script: './index.js', env_production: { NODE_ENV: 'production',原创 2021-07-16 14:53:41 · 4977 阅读 · 0 评论 -
发布npm包的流程以及npm常用命令
发布npm包的流程1、如果你没有 npm 账号,去 官网 注册一个或者 npm adduser 都是注册,注册完记住自己的账号和密码邮箱(注册完需要邮箱激活)2、使用 nrm 查看当前镜像源,要当前镜像源为 https://registry.npmjs.org/3、npm login 登录,会提示你输入账号密码邮箱,填写第一步的信息。4、npm publish 将你的代码仓库推送到远程。结束!npm常用命令镜像仓库相关// 本次从淘宝仓库源下载npm install xx --registr原创 2021-07-09 17:56:51 · 1306 阅读 · 0 评论 -
node:写一个简单的守护进程
var fork = require('child_process').fork;//保存被子进程实例数组var workers = [];//这里的被子进程理论上可以无限多var appsPath = ['./app.js'];var createWorker = function(appPath){ //保存fork返回的进程实例 var worker = fork(appPath); //监听子进程exit事件 worker.on('exit',function(){原创 2021-07-02 17:22:10 · 429 阅读 · 0 评论 -
基于node的性能监控平台
pm2我们部署 node 项目一般使用 pm2,其实 pm2 也有界面形式的监控平台,但是要收费的。https://pm2.io/如图,我们平时使用的都是 runtime 版本,也就是开源的,他的监控平台就是收费的,如图easy-monitorhttps://github.com/hyj1991/easy-monitor这是我找到的一个开源的监控平台,相对来说比较好一点的。阿里的性能监控平台(alinnode)https://www.aliyun.com/product/nodejs原创 2021-04-09 16:41:01 · 661 阅读 · 0 评论 -
node:基于gitlab的ci发布脚本
CI脚本stages: - build - deployvariables: PKG: $CI_PROJECT_NAMEinstall dependencies: stage: build tags: - f2e only: - master except: changes: - "*.md" cache: key: "${CI_PROJECT_PATH}-${CI_COMMIT_REF_NAME}" paths:原创 2021-03-08 17:48:46 · 520 阅读 · 0 评论 -
node系列:对stream流的理解
举例我们键盘输入字符输入到应用程序里,可以把每个字符依次连起来,看成字符流。也就是输入流。应用程序把字符一个一个输出到显示器上,就是输出流。有些流用来读取数据,比如从文件读取数据时,可以打开一个文件流,然后从文件流中不断地读取数据。有些流用来写入数据,比如向文件写入数据时,只需要把数据不断地往文件流中写进去就可以了。代码在Node.js中,流也是一个对象,我们只需要响应流的事件就可以了:data事件表示流的数据已经可以读取了,end事件表示这个流已经到末尾了,没有数据可以读取了,error事件表原创 2020-06-09 17:11:13 · 158 阅读 · 0 评论 -
egg:如何在控制器中拿到前端传的参数
框架通过在 Controller 上绑定的 Context 实例,提供了许多便捷方法和属性获取用户通过 HTTP 请求发送过来的参数。query(get)获取 url 的 ?后面的数据,通过 ctx.query 拿到数据:// GET /posts?category=egg&language=nodeclass PostController extends Controller { async listPosts() { const query = this.ctx.query;原创 2020-05-15 11:23:52 · 1933 阅读 · 1 评论 -
egg:封装自定义controller统一处理返回结果
需求比如我们要统一处理返回结果。代码// app/core/base_controller.jsconst { Controller } = require('egg');class BaseController extends Controller { get user() { return this.ctx.session.user; } success(data) { this.ctx.body = { success: true, da原创 2020-05-14 18:48:07 · 5064 阅读 · 0 评论 -
egg:egg中的运行环境以及与koa的区别
1. egg中的运行环境1.1 基本很多 Node.js 应用会使用 NODE_ENV 来区分运行环境,但 egg 中使用 EGG_SERVER_ENVNODE_ENVEGG_SERVER_ENV说明无local本地开发环境testunittest单元测试productionprod生产环境当 NODE_ENV 为 production 而 EGG_SERVER_ENV 未指定时,框架会将 EGG_SERVER_ENV 设置成 prod。2.2原创 2020-05-14 15:43:00 · 1584 阅读 · 1 评论 -
node:中间件核心机制的实现
中间件是从Http请求发起到响应结束过程中的处理方法,通常需要对请求和响应进行处理,因此一个基本的中间件的形式如下:const middleware = (req, res, next) => { // TODO next()}一般我们都是这么写一个中间件,在 express 中,我们会调用 app.use(miiddleware) 来使用刚刚定义的这个中间件。我们来模拟一个...原创 2020-03-08 15:36:15 · 297 阅读 · 0 评论 -
express:app.get和router.get的区别&express中中间件的类型
先说结论:app.get('/getData/test') 相当于 app.use('/getData')+router.get('/test')分析一般我们引入是这么引入的吧,说明 router 代表一个由 express.Router() 创建的对象,在路由对象中可定义多个路由规则。const express = require('express')const app = expre...原创 2020-03-03 23:36:18 · 4964 阅读 · 0 评论 -
express:零碎知识点集合
express@4 之前的版本基于 connect 这个模块实现的中间件的架构,express@4 及以上的版本则移除了对 connect 的依赖自己实现了,理论上基于 connect 的中间件(通常以 connect- 开头,如 connect-mongo)仍可结合 express 使用。...原创 2020-01-16 18:23:14 · 305 阅读 · 0 评论 -
node系列:express解析post请求的几个中间件
www-form-urlencoded这是 http 的 post 请求默认的数据格式,需要 body-parser 中间件的支持var express = require('express');var app = express();var bodyParser = require('body-parser');app.use(bodyParser.urlencoded({ e...原创 2019-10-24 10:18:52 · 1025 阅读 · 0 评论 -
node学习之路:day1(http服务器的搭建)
ip用来定位计算机,端口号定位应用程序,所有需要联网通信的应用程序都会占用一个端口号,比如Apache软件端口号为80第一个程序hello worldconsole.log('hello world')保存为 helloworld.js 文件,命令行运行 node helloworld.js直接输入node回车可进入交互模式,也就是浏览器的consolenode介绍我们使用PH...原创 2019-08-13 15:55:09 · 435 阅读 · 0 评论 -
node学习之路:day2(文件的读写操作)
返回前端页面var http = require('http')var fs = require('fs')var server = http.createServer()server.on('request', function (req, res) { // / index.html var url = req.url if (url === '/') { /...原创 2019-08-15 13:53:52 · 389 阅读 · 0 评论 -
node学习之路:day3(模板引擎的使用)
概述今天主要来写一下在 node 中使用模板引擎,当然,在浏览器中也可以使用,模板引起最早就是诞生于服务器领域,后来才发展到了前端。模板引擎很多,今天我们用 art-template 这个模板引擎来举例子,据我所知现在比较火的还有 jade 和 ejs。在浏览器中使用<!DOCTYPE html><html lang="en"><head> &l...原创 2019-09-01 20:44:22 · 419 阅读 · 0 评论 -
node学习之路:day4(做一个简单的留言板)
目录结构app.jsnode_modulespubliccssjsimglibviewindex.htmlpost.html核心代码// /public 整个 public 目录中的资源都允许被访问var http = require('http')var fs = require('fs')var url = require('url')var ...原创 2019-09-02 00:12:18 · 430 阅读 · 0 评论 -
node系列:本地修改文件自动重启node服务器
问题描述一般我们修改node文件后,需要重启服务器才能生效,这样调试非常的麻烦,所以我们需要一些第三方库的帮助来自动重启node服务器。解决方案1、nodemon安装:npm install -g nodemon启动:nodemon server.js2、supervisor安装:npm install supervisor -g启动:supervisor node server....原创 2019-09-02 16:31:50 · 976 阅读 · 1 评论 -
node学习之路:day5(简单入门express)
// 0. 安装// 1. 引包var express = require('express')// 2. 创建你服务器应用程序// 也就是原来的 http.createServervar app = express()// 当服务器收到 get 请求 / 的时候,执行回调处理函数app.get('/', function (req, res) { // 在 Expres...原创 2019-09-03 09:52:37 · 392 阅读 · 0 评论 -
node系列:初探websocket
简介很多网站的实时推送技术,所用的技术大多都是 Ajax 轮询。也就是隔几秒请求一次接口,显然这样会浪费很多的带宽等资源。WebSocket 允许服务端主动向客户端推送数据,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。客户端实现function WebSocketTest () { if ("WebSocket" in window) { ...原创 2019-09-04 18:48:55 · 565 阅读 · 0 评论 -
node学习之路:day6(express重写留言板)
知识点express中使用模板引擎使用body-parser中间件解析post请求目录结构app.jsnode_modulespubliccssjsimglibviewindex.htmlpost.html核心代码# express-art-template 依赖了 art-templatenpm install art-template ex...原创 2019-09-05 11:48:37 · 479 阅读 · 0 评论 -
node学习之路:day7(express做一个管理系统)
知识点使用路由了解真实项目文件结构目录结构├── app.js├── router.js├── student.js├── db.json├── views│ ├── edit.html│ ├── index.html│ ├── new.html├── public│ ├── css│ │ ├── main.css核心代码// app.js 入口文...原创 2019-09-05 20:47:20 · 511 阅读 · 0 评论 -
node系列:连接mongodb数据库
node连接mongodb数据库方法1、使用官方提供的 mongodb 包来操作https://github.com/mongodb/node-mongodb-native2、使用第三方mongoose包来操作英:https://mongoosejs.com/中:http://www.mongoosejs.net/使用mongoosenpm install mongoose --sa...原创 2019-09-18 17:45:09 · 355 阅读 · 0 评论 -
node系列:连接mysql数据库
第一步在 https://www.npmjs.com/ 中搜索 mysql,因为这里搜到的都是 node 的包,搜到的以第一个就是啦。第二步安装:npm install mysql使用:var mysql = require('mysql');var connection = mysql.createConnection({ host : 'localhost'...原创 2019-09-19 14:54:35 · 252 阅读 · 0 评论 -
node系列:art-template的模板继承
知识点学习 art-template 的模板继承目录结构├── index.html├── layout.html├── list.html├── header.html├── footer.html核心代码<!-- layout.html --><!DOCTYPE html><html lang="en"><head>...原创 2019-09-21 17:13:36 · 576 阅读 · 0 评论 -
node学习之路:day8(搭建博客)
知识点路由设计md5 密码加密session 处理登录状态一般项目的目录结构目录结构├── app.js├── router.js├── controllers│ ├── ***├── models│ ├── comment.js│ ├── user.js├── views│ ├── edit.html│ ├── index.html│ ├── ne...原创 2019-09-24 09:47:09 · 187 阅读 · 0 评论 -
node系列:express中的中间件
中间件简介中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。中间件这个概念比较大,在 web 中,我们经常管 web 中间件叫做 web 服务...原创 2019-09-24 12:03:36 · 146 阅读 · 0 评论 -
node系列:centOS搭建node环境以及pm2和nvm等工具的使用
以后再更原创 2019-09-29 12:13:11 · 348 阅读 · 0 评论 -
node系列:node断点调试工具
简介我们一般做前端调试代码的时候,都是打开 Chrome 的审查元素,而在 node 中,我们仍然可以像之前那样做,具体看以下例子。核心在启动的时候加上 --inspect 参数。例如:node --inspect app.js如果是 nodemon 启动,则是:nodemon --inspect app.js使用这里我们简单的用 koa 框架测试一下1、搭建项目mkdir ...原创 2019-09-29 14:35:59 · 632 阅读 · 0 评论 -
node爬虫:爬取csdn博客并保存为 markdown 文件
需求最近自己搞了个博客 https://lvan-zhang.github.io ,于是准备把 csdn 上的文章扒拉过来,手动简单的试了一下:点开每一个文章的编辑按钮复制文章的源文字(markdown),复制到自己博客的 markdown 文件中。并在新的文件开头按照格式注上标题、日期等等这些操作全部手动来做的话那是要累死个羊的,于是准备写点代码实现自动化,虽说 python 用来...原创 2019-10-08 18:00:28 · 967 阅读 · 2 评论 -
node系列:Node.js 中 ./,__dirname ,__filename,path.join()和path.resolve() 的区别
Node.js 中 ./,__dirname ,__filename,path.join()和path.resolve() 的区别先写个例子目录为E:\web\test\abc.js,其中abc.js为我们写的测试代码,在Node中././就是执行node命令的路径,也就是工作路径,在哪运行的node index.js或者说在哪运行npm run build的路径 (特殊情况:在 requ...原创 2019-03-10 14:20:14 · 8540 阅读 · 3 评论