node是一個運行的平臺,支持JS語言,能夠寫後臺的服務。node
node的特色:基於win8引擎渲染,渲染速度快,效率高,性能好。jquery
基於事件驅動的I/O(輸入/輸出)操做npm
單線程的,因此基本是異步的操做 json
遵循CommaonJS規範,提供模塊機制,包管理(經過npm命令安裝包(第三方模塊)),模塊的導入導出,內置模塊(http,fs,url,path......)瀏覽器
每個文件就是一個模塊less
推薦兩本書:node深刻淺出 node權威指南異步
運行node文件:右鍵 run a.jside
命令行運行 node a.js(前提:進入a.js所在目錄)性能
node 進入REPLl環境,至關於瀏覽器的控制檯 ctrl+c退出ui
模塊之間的導出和引入:
Module.exports = { } 一次性所有導出
exports.xxx = xxx 一個一個導出
模塊只有導出後,其餘模塊才能用這個模塊中封裝的功能
模塊的引入:
若想使用其餘模塊的內容 先經過require引入進來,a至關於a模塊導出的對象
let a = require("./a"); //js,json文件後綴可不寫
let sum = (...arg)=>{ return eval(arg.join('+')); } let fn = (a,b)=>{ return Math.sqrt(Math.pow(a,2) + Math.pow(b,2)); } module.exports = { sum, fn }
/*拿到的是對象*/ let a = require('./a'); console.log(a.sum(1, 2, 3)); console.log(a.fn(3, 4)); /*對象解構賦值*/ let {sum,fn} = require('./a'); console.log(sum(10, 10, 10)); console.log(fn(3, 4));
node模塊分類:
node內置模塊:
http,fs,url,path,queryString......不須要安裝 直接使用
直接經過require(‘http’)引入內置模塊,不須要安裝
項目初始化:
告訴別人項目的相關(例如:名稱 版本 入口文件 按照的第三方模塊等) npm init 初始化package.js文件
一鍵生成 npm init -y
安裝第三方模塊:別人封裝好的插件和庫 放在npm平臺
npm install 包名 安裝到本地
npm install jquery 表示安裝生產環境(項目上線時)所須要的包 dependencies
npm install less -D 表示安裝開發環境所須要的包 devDependencies
使用第三方模塊:let $ = require('mime');
從線上弄下的項目,是沒有安裝的第三方模塊,可是package.js裏會記錄以前安裝的模塊===>npm install跑環境(安裝package.js裏所須要的模塊)
模塊查找機制:(node_modules)
全局下安裝目錄 npm install less -g
全局下安裝的會設計到包版本衝突的問題,因此儘可能少安裝在全局下
安裝在全局下是適合命令操做的,而不是引入操做 例如less
經過命令操做的包,本地找不到會去全局查找
全局下直接找到lessc index.less
安裝在本地 須要再經過本地經過命令行配置使用 「build」:"lessc index.less" npm run build
自定義模塊
是本身建立的js文件,引入時須要加'./'或者'../'. 不會往上級查找,當前目錄找不到則會報錯