【保姆级】前端使用node.js基础教程

文章目录
- 安装和版本管理:
- npm 命令(Node 包管理器):
- 运行 Node.js 脚本:
- 调试和开发工具:
- 其他常用命令:
- 模块管理:
- 包管理:
- 调试工具:
- 异步编程和包管理:
- 环境变量:
- 单元测试:
- 调试工具:
- 包管理工具:
- Web 框架和工具:
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,常用于服务器端编程。以下是一些 Node.js 中常用的命令:
安装和版本管理:
- 安装 Node.js:
- 在官方网站下载适合你操作系统的 Node.js 安装包,并按照指示进行安装。
- 检查 Node.js 版本:
node -v
npm 命令(Node 包管理器):
- 初始化项目:
npm init - 安装依赖包:
npm install <package_name> - 全局安装包:
npm install -g <package_name> - 卸载包:
npm uninstall <package_name>
运行 Node.js 脚本:
- 运行脚本文件:
node app.js
调试和开发工具:
- Node.js 调试器:
node inspect app.js - 使用 nodemon(自动重启工具):
- 首先安装 nodemon:
npm install -g nodemon - 使用 nodemon 运行脚本:
nodemon app.js
- 首先安装 nodemon:
其他常用命令:
- 查看 npm 包版本:
npm list - 更新 npm 包:
npm update <package_name> - 列出全局安装的 npm 包:
npm list -g --depth 0
模块管理:
- 安装全局模块:
npm install -g <module_name> - 查看已安装的全局模块:
npm list -g
包管理:
- 创建 package.json 文件:
npm init -y - 安装并保存依赖到 package.json 文件中:
npm install <package_name> --save
调试工具:
- 使用 Chrome DevTools 调试 Node.js:
- 启动 Node.js 带调试端口的脚本:
node --inspect-brk=9229 app.js - 在 Chrome 浏览器中打开
chrome://inspect并点击 “Configure”,添加远程目标并进行调试。
- 启动 Node.js 带调试端口的脚本:
异步编程和包管理:
- 使用 npm scripts 运行自定义脚本:
- 在 package.json 中定义脚本:
"scripts": {"start": "node index.js","test": "echo \"Error: no test specified\" && exit 1" } - 运行脚本:
npm start
- 在 package.json 中定义脚本:
环境变量:
- 设置环境变量:
- 在命令行中设置环境变量:
NODE_ENV=production node app.js - 在代码中访问环境变量:
const environment = process.env.NODE_ENV;
- 在命令行中设置环境变量:
单元测试:
- 使用测试框架(如 Mocha、Jest)进行单元测试:
- 安装测试框架:
npm install --save-dev mocha - 编写测试用例并运行测试:
npm test
- 安装测试框架:
调试工具:
-
使用 Node.js 自带的调试器:
- 启动调试模式:
node inspect app.js - 在调试模式下,可以使用
c(继续执行)、n(逐行执行)、repl(进入 REPL 模式)等命令进行调试。
- 启动调试模式:
-
使用 VS Code 进行 Node.js 调试:
- 在 VS Code 中配置
launch.json文件,设置调试选项并启动调试。
- 在 VS Code 中配置
包管理工具:
-
使用 yarn 替代 npm 进行包管理:
- 安装 yarn:
npm install -g yarn - 使用 yarn 安装依赖、运行脚本等操作。
- 安装 yarn:
-
使用 nvm 进行 Node.js 版本管理:
- 安装 nvm(Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash - 使用 nvm 安装、切换和管理不同版本的 Node.js。
- 安装 nvm(Node Version Manager):
Web 框架和工具:
-
Express.js:
- Express 是一个流行的 Node.js Web 应用程序框架,可用于快速搭建服务器端应用。
- 安装 Express:
npm install express
-
Socket.io:
- Socket.io 是一个实时通信库,可用于构建实时 Web 应用程序。
- 安装 Socket.io:
npm install socket.io
您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。
相关文章:
【保姆级】前端使用node.js基础教程
文章目录 安装和版本管理:npm 命令(Node 包管理器):运行 Node.js 脚本:调试和开发工具:其他常用命令:模块管理:包管理:调试工具:异步编程和包管理:…...
xilinx的高速接口构成原理和连接结构
本文来源: V3学院 尤老师的培训班笔记【高速收发器】xilinx高速收发器学习记录Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟GT Transceiver的总体架构梳理 文章目录 一、概述:二、高速收发器结构:2.1 QUAD2.1.1 时钟2.1.2 CHANNEL…...
git 上传文件夹至远端仓库的方法
上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明: 1、登录GitHub网站(账户/密码) 2、创建一个新的空白项目(或者已有的项目)hello-world 分支是master ,这里默认即…...
【鸿蒙系统】 ---OpenHarmony加快本地编译(二)
💌 所属专栏:【鸿蒙系统】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢…...
centos配置natapp 自动配置
下载配置文件 centos 这里 我用的 natapp_autostart-master\natapp_autostart-master\systemd 文件夹下的 natapp.service 上传natapp 运行natapp客户端 在 https://natapp.cn 官网 下载客户端. 放在目录 /usr/natapp/ 运行 sudo chmod ax /usr/natapp/natapp给予可执行权…...
sell脚本多行合成一行
awk {ORS",\n"}{print $2} 120w-3-ws | awk {if(NR%10!0)ORS"";else ORS"\n"}{print $1 >> "newRefundIds.txt"}RS是awk读取文件时的行分隔符 ORS则是awk输出时的行结束符 FS是awk读入记录时的列分隔符 OFS则是awk输出时的列…...
部署prometheus 监控k8s集群
目录 1、主机清单 2、拉取镜像 3、服务安装 4、安装prometheus-operator 5、查看custom metrics api 6、获取prometheus端口 7、将 alertmanager-main 、grafana、prometheus-k8s的端口暴露出来 8、再次查看prometheus端口 9、浏览器访问IP:31940 部署k8集群…...
两个基本功不足导致的bug
作为程序员,基本功不好,可能会在工作中经常碰到一些看起来很隐蔽的 bug,乍看没毛病,自己半天还找不到问题所在。 但是,如果基本功扎实的同学可能一眼就能看出来。 一、HashMap 取不到值 Map<Integer, Integer>…...
【算法每日一练]-图论(保姆级教程篇16 树的重心 树的直径)#树的直径 #会议 #医院设置
目录 树的直径 题目:树的直径 (两种解法) 做法一: 做法二: 树的重心: 题目: 会议 思路: 题目:医院设置 思路: 树的直径 定义:树中距离最…...
Qt播放音乐代码示例
主界面 点击play按钮播放或暂停音乐,拖动进度条,音乐对应播放。 QWidget window;QPushButton* playButton new QPushButton("Play");// Qt 播放音乐// 创建 QMediaPlayer 对象QMediaPlayer* player new QMediaPlayer;// 指定音频文件的路径…...
多线程应用中的性能优化:创建合适的线程数
多线程应用中的性能优化:创建合适的线程数 在多线程应用中,为了降低延迟和提高吞吐量,我们可以采取两种主要策略:优化算法或者充分利用硬件性能。要发挥硬件的极致性能,就需要使用多线程来提高CPU或I/O的利用率。 由于…...
本地运行环境工具UPUPWANK(win)和Navicat数据库管理工具
UPUPWANK安装地址:https://www.upupw.net 1.进入UPUPWANK后点击一键开启 2.新增项目 这里请千万注意80端口,如果80端口被占用了,请记住去任务管理器关闭占用80端口的进程。不然就不会成功显示。(笔者含泪警告,一晚上的…...
LeetCode 每日一题 2024/3/18-2024/3/24
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/18 303. 区域和检索 - 数组不可变3/19 1793. 好子数组的最大分数3/20 1969. 数组元素的最小非零乘积3/21 2671. 频率跟踪器3/22 2617. 网格图中最少访问的格子数3/23 254…...
Unity 鼠标拖拽3D物体跟随移动的方法
之前我们研究过UI拖拽跟随鼠标移动的方法:https://blog.csdn.net/mr_five55/article/details/135562325 但是该方法不适合3D场景。 假如我们要通过鼠标拖拽3D物体移动,那么可以使用以下控制方法: using System.Collections; using System.…...
数据分析-Pandas分类数据的类别排序和顺序
数据分析-Pandas类别的排序和顺序 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&…...
利用 Claude 3 on Amazon Bedrock 和 Streamlit 的“终极组合”,开发智能对话体验
概述 通过本文,您将学会如何利用 Streamlit 框架快速搭建前端交互界面。该界面将集成图像上传功能,让用户可以方便地提交待处理图片。在后端,我们将借助 Amazon Bedrock 的 Message API,调用 Claude 3 家族中的 Sonnet 模型对图像…...
Golang基础 Label标签与goto跳转
使用方法 Label 和goto是必须的 Label可以声明再函数体的任何地方 Label的作用范围是在函数体中 Label在嵌套函数(闭包)是不可用的. 不管是在闭包里调用闭包外的Label, 还是在闭包外调用闭包里的Label 变量的声明必须在goto之前 示例 package mainimport "fmt"…...
二进制王国(蓝桥杯备赛)【sort/cmp的灵活应用】
二进制王国 题目链接 https://www.lanqiao.cn/problems/17035/learning/?contest_id177 题目描述 思路 这里就要灵活理解字典序排列,虽然string内置可以直接比较字符串字典序,但是在拼接时比较特殊,比如 11的字典序小于110,但…...
活用C语言之宏定义应用大全
零、C语言宏定义知多少 C语言的编程过程中经常会用到宏定义,然而如果你只是使用宏定义做一些常量的定义,那么你不是OUT了就是C语言小白。 那么我们在编程过程中,宏定义都有哪些作用呢? 常量定义 可以作为功能代码的开关 防止头文件被重复…...
【源码】I.MX6ULL移植OpenCV
编译完成的源码: git clone https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.下载源码放在自己的opecv源码目录下 2.QTOpenCV工程代码放置的位置 3.更改.pro工程文件的opencv地址 4.使用命令行编译 前提是自己环境中已经配置好arm-qt的交叉编译…...
别再死记硬背背包问题公式了!用‘小偷逛博物馆’的故事带你手写递归C++代码
当小偷逛博物馆遇上背包问题:用故事解锁递归思维 推开厚重的博物馆大门,昏暗的灯光下陈列着五件稀世珍宝。作为一名"专业"小偷,你只有一个承重20公斤的背包,每件藏品都有独特的重量和价值。如何在有限负重下最大化收益&…...
0欧姆电阻在电子设计中的关键应用与选型指南
1. 0欧姆电阻的实质与特性在电子工程实践中,0欧姆电阻(Zero-Ohm Resistor)是一种表面贴装或插装形式的特殊电子元件。虽然标称值为零欧姆,但实际测量时会发现其存在微小的阻值——典型值在20-50毫欧之间。这个特性使其既不同于理想…...
2026.4.7总结
工作日精进:这个月在心声上看到许多离职的帖子,估计是有很多拿完年终奖离职的。看到别人写的离职感悟,我多少有些共情。当有一天,我离职的时候,我也要写一篇长篇大论。早上HR跟入职一两年的人解读了esop相关政策。这政…...
OpenClaw技能扩展实战:Qwen3.5-9B驱动公众号自动发布
OpenClaw技能扩展实战:Qwen3.5-9B驱动公众号自动发布 1. 为什么选择OpenClaw做公众号自动化 去年开始运营技术公众号时,我每周要花3小时重复做三件事:写Markdown初稿、手动调整公众号排版、上传封面图并提交草稿。直到发现OpenClaw的wechat…...
【等保合集】800余份等保三级、等保2.0、等保二级、等保测评作业指导、全套信息安全管理体系文件、标准规范方案报告合集(PPT+WORD+PDF)
等保2.0以GB/T 22239-2019为核心,二级(指导保护级)与三级(监督保护级)在身份认证、数据加密、备份恢复及管理制度上差异显著。测评作业指导书依据GB/T 28448编制,覆盖十大安全类;信息安全管理体…...
使用 winget 卸载 SQLiteStudio:从命令到细节的完整指南
一条命令安装,一条命令卸载——winget 让 Windows 软件管理变得前所未有的简单 前言 SQLiteStudio 是一款轻量、跨平台的 SQLite 数据库管理工具,因其简洁的界面和强大的功能,深受开发者喜爱。在 Windows 上,越来越多的人选择通过微软官方包管理器 winget 来安装它: win…...
如何将数据从小米传输到三星?完整教程
从小米手机换到三星设备似乎很麻烦,尤其是在传输所有重要数据的时候。好在有几种可靠的方法可供选择,包括三星的智能切换功能。但是三星智能切换功能能兼容小米吗? 在本指南中,我们将解答这个问题,并探索如何轻松高效…...
BLIP-2:如何通过Q-Former桥接冻结视觉与大语言模型实现高效多模态预训练
1. BLIP-2为什么能成为多模态预训练的里程碑 第一次看到BLIP-2论文时,最让我惊讶的是它用如此"简单"的方式解决了多模态预训练的两个核心痛点。传统方法就像要求一个厨师同时精通中餐和西餐,而BLIP-2的创新在于让中餐主厨和西餐主厨各司其职&a…...
从Python到Maple:给程序员的数据结构与函数包迁移避坑手册
从Python到Maple:给程序员的数据结构与函数包迁移避坑手册 当你习惯了Python的灵活与简洁,突然切换到Maple的数学王国时,那种感觉就像从喧闹的都市搬进了严谨的实验室。作为一款专注于符号计算和数学建模的工具,Maple有着独特的思…...
别再让大模型瞎猜了!用这个提示词模板,轻松搞定多跳问题检索(附Qwen2.5-7B实测效果)
解锁小模型潜力:多跳问题检索的提示词工程实战指南 在构建基于大语言模型的检索增强生成(RAG)系统时,开发者常面临一个棘手问题:当用户提出需要多步推理的复杂查询时,直接使用原始问题检索往往效果不佳。这…...
