Node.js的安裝與使用

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后端模板的使用

  1. 去下載 ejs 這個模塊 -> npm i ejs
    但是express應(yīng)用,可以不用去 require('ejs');

  2. 在express中設(shè)置ejs生效的中間件。

    //key/value寫法:表示模板的根目錄是哪里,第一個參數(shù)views是固定的,第二個參數(shù):自定義的
    app.set('views','./views');
    //key/value寫法:表示模板的引擎,第一個參數(shù)view engine是固定的,第二個參數(shù):自定義的
    app.set('view engine','ejs');

  3. 基本語法:
    <%= %> 解析文本,會把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)該讓這個中間件寫的前面。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容