当前位置:网站首页>Nodejs 安装与介绍
Nodejs 安装与介绍
2022-06-30 17:46:00 【John是橘红】
Node.js 安装与介绍
1. 用 nvm 管理 node 版本
一般学习的时候,一个版本的 node 已经够用了,直接在官网上下载即可。但是在生产过程中,难免会遇见 node 为不同版本的项目,因此下载 nvm 是挺有必要的事情。如果是 windows 用户,请使用 nvm-windows!
https://github.com/nvm-sh/nvm/blob/master/README.md
安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
添加相关配置,nvm 默认位置是 ~/.nvm。
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
上面两行运行完后,通过指令 nvm list 可以查看 mvn 安装的 node 版本列表。如果安装成功后便可以显示。

安装指定 node 版本:例如要安装大版本为 16 的,直接 nvm install 16 即可。小版本一样的 nvm install 16.15.0。
切换其他版本 node:切换大版本号直接 nvm use 14,即可切换到大版本为 14 的 node 环境,指定小版本同理。
查看当前使用的 node 版本:node -v
2. nodejs 和 js 的区别
- ECMAScript(ES):定义了语法,写 JS 和 nodejs 都必须遵守
- 变量定义,循环,判断,函数
- 原型和原型链,作用域和闭包、异步
- 不能操作 DOM,不能监听 click 时间,不能发送 Ajax 请求
- 不能处理 http 请求,不能操作文件
- 因此,只有 ES,几乎做不了任何实际的项目
- JavaScript(JS):使用 ES 语法规范,外加 Web API,缺一不可。Web API 标准由 W3C 规定。
- DOM 操作,BOM 操作,时间绑定,Ajax 等
- 两者结合,即可完成浏览器端的任何操作
- nodejs:使用 ES 语法规范,外加 nodejs API。
- 处理 http,处理文件等
- 两者结合,即可完成 server 端的任何操作
总结
- ECMAScript 是语法规范
- nodejs = ECMAScript + nodejs API
- JS = ECMAScript + WebAPI
运行 nodejs 方法
命令行运行:
node js文件路径
即可,也可用 vscode 里的插件 Code Runner,一键运行,省的自己手输命令行。

3. commonjs
commonjs 导入导出
// a.js
function add(a, b) {
return a + b;
}
function mul(a, b) {
return a * b;
}
module.exports = {
add,
mul,
};
// b.js
const {
add, mul } = require("./a");
const sum = add(10, 20);
const mulRes = mul(100, 200);
console.log(sum);
console.log(mulRes);
commonjs 引用 npm 包
先初始化一下 npm 环境后下载 npm 包
yarn init -y
yarn add lodash
然后根据 npm 名称引用即可
const _ = require("lodash");
const arr = _.concat([1, 2], 3);
console.log(arr); // [1, 2, 3]
4. debugger
debugger 大家都很熟悉,在打断点的地方代码暂停,方便查找错误。
vscode 在 debug 的时候,会查找 package.json 的 main 属性指定的文件,这文件是主入口,默认名称为 index.js。
打断点后就可以点击左侧的调试入口便可以开始调试。

5. server 开发和前端开发的区别
并不是学会了 nodejs 就代表了会后端开发!
- 服务稳定性
- server 端可能会遭受各种恶意攻击和误操作
- 单个客户端可以意外挂掉,但是服务器不能
- 服务稳定性应用:PM2 进程守护
- 考虑内存和 CPU (优化,扩展)
- 客户端独占一个浏览器,内存和 CPU 都不是问题
- server 端要承载很多强求,CPU 和内存都是稀缺资源
- 使用 stream 写日志,使用 redis 存 session,优化内存
- 日志记录
- 前端也会参与写日志,但只是日志的发起方,不关心后续
- server 端要记录日志、存储日志、分析日志,前端不关心
- 安全
- server 端要随时准备接收各种恶意攻击,前端则少很多,如:越权操作,数据库攻击等
- 应用:登录验证,预防 xss 攻击和 sql 注入
- 集群和服务拆分
- 产品发展速度快,流量可能会迅速增加
- 通过扩展机器和服务拆分来承载更大流量
边栏推荐
- Word——Word在试图打开文件时遇到错误的一种解决办法
- 「经验」爬虫在工作中的实战应用『实现篇』
- SaaS project management system solution for the financial service industry helps enterprises tap a broader growth service space
- RFFE中MIPI协议
- 音频 librosa 库 与 torchaudio 库中 的 Mel- spectrogram 进行对比
- NFT technology for gamefi chain game system development
- 浏览器窗口切换激活事件 visibilitychange
- Classic problem of leetcode dynamic programming (I)
- CODING 正式入驻腾讯会议应用市场!
- What if icloud photos cannot be uploaded or synchronized?
猜你喜欢

《所谓情商高,就是会说话》读书笔记

链表中环的入口结点-链表专题

Reading notes of "high EQ means being able to talk"

MySQL事务并发问题和MVCC机制

金融服务行业SaaS项目管理系统解决方案,助力企业挖掘更广阔的增长服务空间

PC wechat multi open

Geoffrey Hinton:我的五十年深度学习生涯与研究心法

mysql for update 死锁问题排查

The easynvr platform equipment channels are all online. What is the reason for the "network request failure" in the operation?

Leader: who can use redis expired monitoring to close orders and get out of here!
随机推荐
TCP packet sticking problem
TCP粘包问题
Redis入门到精通01
Glacier teacher's book
Sword finger offer 17 Print from 1 to maximum n digits
js 字符串截取方法汇总
《Go题库·15》go struct 能不能比较?
rust配置国内源
Geoffrey Hinton:我的五十年深度学习生涯与研究心法
20220528【聊聊假芯片】贪便宜往往吃大亏,盘点下那些假的内存卡和固态硬盘
一点比较有意思的模块
AI chief architect 10-aica-lanxiang, propeller frame design and core technology
电子元器件招标采购商城:优化传统采购业务,提速企业数字化升级
Small program container technology to promote the operation efficiency of the park
opencv数据类型代码表 dtype
What if icloud photos cannot be uploaded or synchronized?
System integration project management engineer certification high frequency examination site: prepare project scope management plan
slice
Full recharge, im+rtc+x full communication service "feedback season" starts
Pytorch learning (III)