node的安裝
-
node安裝:
去官網(wǎng):http://nodejs.cn/download/
下載 .msi文件cmd -> node -v
當(dāng)Node.js安裝成功后,npm會自動安裝好
npm下載器 -> 默認(rèn)會去 npmjs.com網(wǎng)站去下載 ( 國外 )
淘寶npm鏡像:https://developer.aliyun.com/mirror/NPM?from=tnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm -> 國外 ( npm的操作,盡量用npm去操作命令 )
cnpm -> 國內(nèi) ( cnpm去下東西,盡量不要用cnpm操作命令 )
- node的cmd操作:
cd cd.. 進(jìn)入目錄、跳出目錄
在指定的目錄下去運(yùn)行相關(guān)的文件。
如果想在任意的路徑下去運(yùn)行文件,可以寫入到全局環(huán)境變量里
對于后期理解npm下載的文件很有幫助:
因為 npm 下載文件分為 全局 和 局部 兩種模式
局部下載的包 -> 指定的路徑下進(jìn)行訪問。
全局下載的包 -> 在任意路徑下進(jìn)行訪問。
npm -> 去下載包的時候,大部分情況下都建議局部安裝(除非這個包需要全局訪問的時候,再全局去下載)
tab鍵 -> 快速提示
ctrl + c 退出操作( 向后執(zhí)行 )
cls 清屏
dir 顯示文件
mkdir 創(chuàng)建文件夾
rmdir 刪除文件夾
type nul>file.txt 創(chuàng)建空文件
echo [content]>file.txt 創(chuàng)建帶內(nèi)容文件
del file.txt 刪除文件
- node 擴(kuò)展操作
npm :
局部 : npm install (i) xxx
全局 : npm install --global (-g) xxx
npm root –g 全局安裝的位置
nvm和nrm :
nvm : 可以讓電腦存在多個不同的node版本
1. nvm安裝
nvm ls 查看
nvm install v10.0.0 創(chuàng)建版本
nvm use 10.0.0
nrm :
cnpm i -g nrm
nrm ls 查看
nrm use 切換
- node基本操作:
JS -> 瀏覽器 運(yùn)行 -> 前端 ( 瀏覽器的查看控制臺 )
JS -> Node.js 運(yùn)行 -> 后端 ( Node控制臺 , REPL模式 )
如果進(jìn)行node編程:還是得需要編寫文件,讓控制臺去執(zhí)行這個文件。
node文件都是 xxx.js ( js文件 ) -> 執(zhí)行 node xxx.js ( .js是可以省略的 )
安裝nodemon, 實時偵測文件的變化
cnpm install -g nodemon
前端 -> 操作DOM,做一些交互行為。
后端 -> 操作數(shù)據(jù),操作文件、安全、負(fù)載均衡、分布式等等。
雖然JS作為前端和node端的開發(fā)語言,大部分語法是通用的,但是由于他們做的事情不同,所以有一些功能不能通用,例如:DOM操作,Node做不了的。
-
自定義模塊 :
ES6 -> ES Module規(guī)范
提供接口 exports {} export default {}
調(diào)用接口 import xxx from [path];Node.js -> 基于commonjs規(guī)范 ->
提供接口 module.exports exports
調(diào)用接口 require([path])Node.js -> xxx.mjs 采用ES6模塊寫法操作Node -
第三方模塊:
cnpm nodemon : 全局安裝 ( 一般都是已一種軟件的形式進(jìn)行使用 )
moment : 局部安裝 ( 一般都是已一種代碼的形式進(jìn)行使用 )
node_modules 會自動生成 -> 存的就是局部用到的第三方模塊cowsay : 局部安裝 的話。也是可以調(diào)用到的。
node_modules / .bin 目錄 再去 cmd 中執(zhí)行 cowsay hello -
vue項目
/router -> router.js 配置路由 一級路由,二級路由,動態(tài)路由
/store -> index.js 、todo.js list.js user.js
/components -> /search/search.vue search-history.vue search-suggest.vue /top/top.vue /head/head.vue
/views -> /index/index.vue /detail/detail.vue ...
/server -> http.js -> axios進(jìn)行二次封裝前后端分離開發(fā)模式:前端后端兩個服務(wù)環(huán)境,反向代理在一起
前臺 -> vue
反向代理 config.vue.js -> proxy反向代理
后端 -> 網(wǎng)易云 Node接口
關(guān)于ejs后端模板的使用
去下載 ejs 這個模塊 -> npm i ejs
但是express應(yīng)用,可以不用去 require('ejs');-
在express中設(shè)置ejs生效的中間件。
//key/value寫法:表示模板的根目錄是哪里,第一個參數(shù)views是固定的,第二個參數(shù):自定義的
app.set('views','./views');
//key/value寫法:表示模板的引擎,第一個參數(shù)view engine是固定的,第二個參數(shù):自定義的
app.set('view engine','ejs'); 基本語法:
<%= %> 解析文本,會把HTML解析成普通文本
<%- %> 可以解析HTML
<% %> 操作邏輯 if() else if() forEach()
<%- include() %> 引入其他模板片段
node.js的框架之一-express的使用
下載地址:http://www.expressjs.com.cn/
//express使用:
var express = require('express');
// 創(chuàng)建一個app應(yīng)用,所有功能方法都是基于這個app應(yīng)用去使用的
var app = express();
-
express中間件
express框架就是由各種中間件組成的,本身是極簡的。
express中的中間件分類:
1. 應(yīng)用級中間件 : app下使用的 app.use() app.get() app.post() app.all() ...
2. 路由級中間件 : express.router()
3. 錯誤級中間件 : app.use((err,req,res,next)=>{});
4. 內(nèi)置中間件 :
express.static :訪問靜態(tài)資源的
express.json、express.urlencoded : 能夠拿到發(fā)送過來的數(shù)據(jù)
5. 第三方中間件中間件本質(zhì)上就是一個函數(shù)。
中間件的使用:
function foo(req,res,next){
console.log(1);
next(); // 去執(zhí)行下一個中間件,如果不調(diào)用next()話,就不會去執(zhí)行下一個中間件
console.log(4);
}
function bar(req,res,next){
console.log(2);
next();
console.log(5);
}
function baz(req,res,next){
console.log(3);
next();
console.log(6);
}
// 1 2 3 6 5 4 , 中間件的執(zhí)行順序非常重要,順序不同導(dǎo)致結(jié)果是不一樣的,如果你希望這個中間件被觸發(fā)的幾率是大的,那么就應(yīng)該讓這個中間件寫的前面。