目录
Node.js是一个javascript运行环境。他让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能。
Node.js是基于V8引擎,V8是谷歌发布的开源javascript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl将这个V8搬到服务器上,用于做服务器的软件,因此Node.js可以解析js代码

注意:Blink内核能够对于HTML/CSS中的DOM进行排版解析,确定每一个元素的位置
Node.js可以解析js代码(没有浏览器安全级别限制[中间层的加持能够实现比传统浏览器所不能实现的功能]),中间层提供很多系统级别API如:文件的读写(File System)、进程管理(Process)、网络通信(HTTP/HTTPS)
注意:在node.js里面不支持HTML与CSS

我们可以把公共的功能抽离成一个单独的js文件作为一个模块,默认情况下面这个模块里的方法或属性外面是没法访问的(针对require方法,不针对script标签)。如果要让外部可以访问模块里的方法或者属性,就必须在模块里通过exports或modlue.exports暴露属性或者方法
暴露:module.exports=test
将test方法直接暴露出去
注意:这种方式只能暴露a.js的一个方法,如果导入多个的话,后面方法的会将前面的方法覆盖
暴露a.js文件的多个方法
暴露:module.exports={test:test,run:run}或简写:module.exports={test,run}
注意:后面是对象形式,暴露test,run方法
暴露:(第二种写法)
export.test=test
expoet.run=run
注意:这里的暴露第一个为导入的值可以随意写名称,第二个为导出的值不可以随意写名称
- //a.js内
- function test(){
- console.log("test-aa");
- }
-
- function run(){
- console.log("我要飞的更高");
- }
-
- module.exports={test,run}
导入:var a=require("./a")
导入a.js文件
- //导入a.js文件
- var a=require("./a")
- console.log(a);
注意:
查看node.js版本:node -v
执行js文件:node .\文件名
含义:node.js的包管理器,用于node插件管理包括安装、下载、管理依赖(package.json)

NRM(npm registry manager)是npm的镜像源管理工具,有时候国外资源太慢,使用这个可以快速的在npm源之间切换
手动切换方法:npm config set registry https://registry.npm.taobao.org
查看镜像源:npm config get registry
安装nrm:npm install -g nrm
查看版本:nrm -V
使用nrm:nrm ls查看可选源,其中带*的是当前使用的源
切换nrm:若切换到淘宝——nrm use taobao(taobao为源)
测试速度:nrm test
这是个完整的npm.js,org镜像,你可以用此代替官方版本,同步频率为10分种一次以保证尽量与官方服务同步
npm install -g cnpm --registry=https://registry.npmmirror.com
安装yarn:npm install -g yarn
注意:先用npm来安装下来,然后再取代npm(npm泪奔)

项目内执行:npm init
package.json内添加属性:"type": "module"
- //module.js文件内
- const moduleA={
- //空模块
- }
- export default moduleA//默认导出
- import moduleA from "./module/module.js";//导入modeleA
- console.log(moduleA)
- //module.js文件内
- const moduleA={
- //moduleA模块
- }
- const moduleB={
- //moduleB模块
- }
- export {moduleA,moduleB}//导出想要导出的模块
- import {moduleA,moduleB} from "./module/module.js";//导入modeleA
- console.log(moduleA)
- console.log(moduleB);
注意:以{}形式导出,不管导入多少模块都需要用{}导入