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

Day113 切换Node.js版本、多数据源配置

切换Node.js版本

1.nvm简介

nvm(Node Version Manager),在Windows上管理Node.js版本,可以在同一台电脑上轻松管理和切换多个Node.js版本

nvm下载地址:https://github.com/coreybutler/nvm-windows/

在这里插入图片描述

2.配置nvm

安装之后检查nvm是否已经安装好了,打开cmd窗口:输入nvm -v

在这里插入图片描述

像这样,如果有版本就是安装成功了,如果显示不是命令那就是环境变量没有配置好

配置nvm的环境变量:

打开电脑的高级系统设置,找到环境变量,修改系统变量的PATH选项,新增nvm的安装路径,这样nvm就配置在电脑中了

在这里插入图片描述

配置好重新打开cmd窗口就应该可以查看nvm版本了

3.nvm更换Node.js版本

首先使用nvm list available 命令可以查看电脑上可以安装的Node.js版本

// 查看可安装的Node.js版本
nvm list available           

安装需要的版本

// 安装20.17.0版本的Node.js
nvm install 20.17.0 

在这里插入图片描述

如果出现successfully就是安装新版本安装成功了,现在你可以使用nvm更换Node.js版本了

// 切换使用指定版本的Node.js
nvm use 20.17.0          

出现下面的信息就是更换node版本成功了

C:\Windows\system32>nvm use 20.17.0
Now using node v20.17.0 (64-bit)

查看电脑上的node版本有哪些nvm管理了

// 查看已安装的Node.js版本
nvm list  

在这里插入图片描述

多数据源配置

在这里插入图片描述

yaml配置

application.yml,开发环境使用local

# 项目相关配置
ruoyi:# 名称name: RuoYi# 版本version: 3.9.0# 版权年份copyrightYear: 2025# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)profile: D:/ruoyi/uploadPath# 获取ip地址开关addressEnabled: false# 验证码类型 math 数字计算 char 字符验证captchaType: math# 开发环境配置
server:# 服务器的HTTP端口,默认为8080port: 8080servlet:# 应用的访问路径context-path: /tomcat:# tomcat的URI编码uri-encoding: UTF-8# 连接数满后的排队数,默认为100accept-count: 1000threads:# tomcat最大线程数,默认为200max: 800# Tomcat启动初始化的线程数,默认值10min-spare: 100# 日志配置
logging:level:com.ruoyi: debugorg.springframework: warnconfig: classpath:logback-${spring.profiles.active}.xml# 用户配置
user:password:# 密码最大错误次数maxRetryCount: 5# 密码锁定时间(默认10分钟)lockTime: 10# Spring配置
spring:# 资源信息messages:# 国际化资源文件路径basename: i18n/messagesprofiles:active: local   #切换环境# 文件上传servlet:multipart:# 单个文件大小max-file-size: 10MB# 设置总上传的文件大小max-request-size: 20MB# 服务模块devtools:restart:# 热部署开关enabled: true# redis 配置redis:# 地址host: localhost# 端口,默认为6379port: 6379# 数据库索引database: 0# 密码password:# 连接超时时间timeout: 10slettuce:pool:# 连接池中的最小空闲连接min-idle: 0# 连接池中的最大空闲连接max-idle: 8# 连接池的最大数据库连接数max-active: 8# #连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms# token配置
token:# 令牌自定义标识header: Authorization# 令牌密钥secret: abcdefghijklmnopqrstuvwxyz# 令牌有效期(默认30分钟)expireTime: 1380mybatis-plus:#扫描mapper文件所在位置mapper-locations: classpath*:mapper/**/*.xml#可以指定实体类所在包路径type-handlers-package: com.ruoyi.modules.handler.mybatis_plustype-aliases-package: com.ruoyi.**.domainconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# PageHelper分页插件
pagehelper:helperDialect: oraclesupportMethodsArguments: trueparams: count=countSql# Swagger配置
swagger:# 是否开启swaggerenabled: true# 请求前缀pathMapping: /dev-api# 防止XSS攻击
xss:# 过滤开关enabled: true# 排除链接(多个用逗号分隔)excludes: /system/notice# 匹配链接urlPatterns: /system/*,/monitor/*,/tool/*# Knife4j配置
knife4j:# 是否开启Knife4j(swagger增强版)enable: true# 开启屏蔽文档资源production: false

application-dev.yml,再复制两份,分别改成application-local.yml、application-prod.yml

# 数据源配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSource
#        driverClassName: com.mysql.cj.jdbc.DriverdriverClassName: dm.jdbc.driver.DmDriverdruid:# 主库数据源
#            master:
#                url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#                username: root
#                password: 123456master:url: jdbc:dm://192.168.1.111:5236/SYSDBAusername: SYSDBApassword: Dove1314# 从库数据源slave:# 从数据源开关/默认关闭enabled: falseurl: username: password: # 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置连接超时时间connectTimeout: 30000# 配置网络超时时间socketTimeout: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter: enabled: truestatViewServlet:enabled: true# 设置白名单,不填则允许所有访问allow:url-pattern: /druid/*# 控制台管理用户名和密码login-username: ruoyilogin-password: 123456filter:stat:enabled: true# 慢SQL记录log-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:config:multi-statement-allow: true

logback日志配置

logback-dev.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS},%logger,%C{0},%msg%n"/><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder></appender><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/console.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/console.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><appender name="IOEXCEPTION_LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/ioexception.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/ioexception.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><logger name="ioexception" level="INFO" additivity="false"><appender-ref ref="IOEXCEPTION_LOGGER"/></logger><root level="INFO"><appender-ref ref="ALL"/></root>
</configuration> 

logback-local.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS},%logger,%C{0},%msg%n"/><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder></appender><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/console.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/console.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><appender name="IOEXCEPTION_LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/ioexception.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/ioexception.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><!-- 设置MyBatis的日志级别 --><!-- 方式1:打印特定Mapper接口的SQL --><logger name="com.example.mapper" level="DEBUG"/><!-- 方式2:打印所有Mapper接口的SQL --><logger name="org.mybatis" level="DEBUG"/><!-- 方式3:打印执行的SQL语句及参数(更详细) --><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/><logger name="java.sql.ResultSet" level="DEBUG"/><logger name="ioexception" level="INFO" additivity="false"><appender-ref ref="IOEXCEPTION_LOGGER"/></logger><root level="INFO"><appender-ref ref="ALL"/></root>
</configuration> 

logback-prod.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS},%logger,%C{0},%msg%n"/><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder></appender><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/console.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/console.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><appender name="IOEXCEPTION_LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder><file>${LOG_PATH}/ioexception.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>${LOG_PATH}/ioexception.%i.log</fileNamePattern><minIndex>1</minIndex><maxIndex>5</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy></appender><logger name="ioexception" level="INFO" additivity="false"><appender-ref ref="IOEXCEPTION_LOGGER"/></logger><root level="INFO"><appender-ref ref="ALL"/></root>
</configuration> 

启动命令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

输入命令

-Dspring.profiles.active=local -DLOG_PATH=E:\chiguiCode\cg-lims-notes\logs\admin

日志环境选择local,日志打印在E:\chiguiCode\cg-lims-notes\logs\admin这个文件夹下

在这里插入图片描述

运行项目,查看日志文件

在这里插入图片描述

http://www.lryc.cn/news/577142.html

相关文章:

  • 服务器被入侵的常见迹象有哪些?
  • AdGuard Home 安装及使用
  • SimLOD代码精读(二)建立Octree之Splitting Pass分裂阶段
  • 永磁同步电机无速度算法--基于带相位补偿的鉴相重构锁相环的滑模观测器
  • 华为云Flexus+DeepSeek征文 | 基于华为云Dify-LLM搭建知识库问答助手
  • 深入解析TCP:可靠传输的核心机制与实现逻辑
  • LaTeX 常用宏包(数学论文场景)
  • MySQL索引失效场景
  • NLP自然语言处理 01 文本预处理
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符
  • 【c/c++1】数据类型/指针/结构体,static/extern/makefile/文件
  • 【c/c++3】类和对象,vector容器,类继承和多态,systemd,stdboost
  • PCB工艺学习与总结-20250628
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • 利用deepseek学术搜索
  • git lfs 提交、拉取大文件
  • 现代 JavaScript (ES6+) 入门到实战(五):告别回调地狱,Promise 完全入门
  • 机器学习在智能电网中的应用:负荷预测与能源管理
  • Redis Cluster Gossip 协议
  • ROS 避障技术介绍
  • spring-ai-alibaba 1.0.0.2 学习(三)——配置
  • Transformer超详细全解!含代码实战
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • 机电一体化论文写作实战指南:从创新设计到工程验证的完整路径
  • 爬虫实战之图片及人物信息爬取
  • VMware设置虚拟机为固定IP
  • 06_注意力机制
  • 1.认识Docker
  • 开发中bs,cs都是什么意思
  • MySQL-复合查询