node基础
node是一個運行的平臺,支持JS語言,可以寫后臺的服務。
node的特點:基于win8引擎渲染,渲染速度快,效率高,性能好。
? ? ? ? ? ? ? ? ? ? ? ?基于事件驅動的I/O(輸入/輸出)操作
? ? ? ? ? ? ? ? ? ? ? ?單線程的,所以基本是異步的操作? ??
? ? ? ? ? ? ? ? ? ? ? 遵循CommaonJS規范,提供模塊機制,包管理(通過npm命令安裝包(第三方模塊)),模塊的導入導出,內置模塊(http,fs,url,path......)
? ? ? ? ? ? ? ? ? ? ? 每一個文件就是一個模塊
推薦兩本書:node深入淺出 node權威指南
運行node文件:右鍵 run a.js
? ? ? ? ? ? ? ? ? ? ? ? ? 命令行運行 node a.js(前提:進入a.js所在目錄)
node 進入REPLl環境,相當于瀏覽器的控制臺? ctrl+c退出
模塊之間的導出和引入:
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 } a.js /*拿到的是對象*/ 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)); b.jsnode模塊分類:
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文件,引入時需要加'./'或者'../'.? ? ? 不會往上級查找,當前目錄找不到則會報錯
轉載于:https://www.cnblogs.com/Lia-633/p/9857927.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 梦到摘苹果是什么意思
- 下一篇: jvm感知docker容器参数