Nodejs与模块化小知识ovo

什么是Nodejs

	Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
	Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

(1) 浏览器 vs node

*chrome V8简称V8,是由谷歌开源的一个高性能JavaScript引擎;
NodeJS是基于Chrome V8引擎开发的,实际上它是对GoogleV8引擎进行了封装;NodeJS对一些特殊用例进行了优化,提供了代替的API,使得V8在非浏览器环境下运行的更好;

异:
node里面没有DOM、BOM;
node多了很多的API;
同:
都是chrome V8;
都支持js;
都支持ECMA Script;

(2)Node.js命令

  • node --varsion(-v)——查看node版本;
  • node File_Name——node文件运行;
  • .exit OR 按两次ctrl+c——退出node命令;
  • cd …——返回上层目录(cd后为两个".");
  • cd File_Name——访问文件夹;

NodeJs常用工具

npm

npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
①允许用户从NPM服务器下载别人编写的第三方包到本地使用。
②允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
③允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。

☆npm命令

("-g"为"-global"意为全局安装;install可缩写为"i";)

  • npm -v——查看npm版本;
  • npm install npm -g——升级npm版本;
  • npm install Module_Name (-g)——安装模块(全局安装);
  • npm list——查看安装信息;
  • npm uninstall Module_Name——卸载模块;
  • npm updata Module_Name——更新模块;
  • npm init——初始化(生成package.json文件);
  • npm config set registry https://registry.npm,taobao.org——安装淘宝镜像;
  • npm install nrm -g——安装nrm(nrm是切换npm源的工具);
  • nrm ls——查看可选的源列表;
  • nrm test——查看每个源的响应时间;
  • nrm use Source——切换源;
  • nrm add——添加源;
  • nrm del——删除源;
☆nodemon与supervisor
·nodemon

简介:
nodemon工具的作用是监听代码文件的变动,当代码改变之后,自动重启;

下载:
cnpm install nodemon -g;

使用:
nodemon File_Name;

supervisor

简介:
supervisor是一个Linux/Unix系统上的进程监控工具。
supervisor提供了一种统一的方式来start、stop、monitor你的进程,进程可以单独控制,也可以成组控制;

下载:
cnpm install supervisor -g;

使用:
supervisor File_Name;

*注意事项:
问题:supervisor会出现死循环;
分析:内容一直在改变;
解决:vs code关掉自动保存;

nvm

安装:

nvm install version;
例:nvm install v10.8.0 || nvm install 10.8.0 || nvm install latest(最新版本);

切换Node.js版本:

nvm use vsersion;
例:nvm use v10.8.0;

查看当前电脑中Node.js的所有版本:

 nvm list;

前段模块化(面试题)

  1. CMD(sea.js)
    SeaJs是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制;
    SeaJs提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口;
    核心特性
    ①简单又好的模块定义规范:SeaJs遵循CMD规范,可以像Node.js一般书写模块代码;
    ②自然直观的代码组织方式:依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣;

  2. AMD(require.js)
    RequireJs是一个JavaScript模块加载器,他非常适合在浏览器中使用。使用RequireJs加载模块化脚本将提高代码的加载速度和质量;

  3. Common.js
    CommonJs API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。

  4. es6模块化
    在之前的JavaScript中一直是没有模块化系统的,前辈们为解决这些问题,提出了各种规范,最主要的有CommonJs和AMD两种。前者用于服务器,后者用于浏览器。而es6中提供了简单的模块化系统,完全可以取代现有的CommonJs和AMD规范,成为浏览器和服务器通用的模块化解决方案;

CMD和AMD

区别

(1)AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
(2)对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行。
CMD推崇依赖就近,AMD 推崇依赖前置。

Node.js中使用了Common.js规范(三类)

一、内置的;
二、第三方的;
三、自定义的;

前端的环境

  1. 开发环境;
  2. 生产环境;
  3. 测试环境;
  4. 预发布环境;
  5. 上线环境;

自定义模块的发布

package.json——当前项目的依赖包;
package-lock.json——当前项目依赖包的具体信息;
Node.js是单线程;

关于nodejs的面试题

Q:Node.js中请求数据,需要跨域吗?
A:不需要跨域,由于同源策略;
Q:为什么会出现跨域?
A:开发中会有不同的域名和端口等出现,我们需要去获取他们的内容;
Q:浏览器如何组织跨域?
A:浏览器具有安全策略(同源策略实现);
Q:跨域的范围?
A:浏览器;
Q:为什么要有package.json?
A:帮助我们记录第三方的内容,即使没有node_modules也可以下载;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值