node.js基本概念

一、動態網頁 和 靜態網頁
動態網頁:數據能夠進行交互 動態改變數據
 
二、node
node是基於chrome的V8引擎的Javscript運行環境 
node中的npm 是全球最大的包管理器 (全球最大的垃圾網站)
node中的事件機制以及非阻塞式的I/O式模型 使其輕量又高效
I:input
o:output
 
三、v8引擎:
瀏覽器內核
引擎
渲染引擎
腳本引擎
 
四、node中是沒有DOM 和BOM的概念的
 
五、node的版本
LTS 穩定版本:
10.15.2(10是大版本號,15是小版本號,2是補丁)
 
六、nodeJS和 瀏覽器中的JAVAscript 有什麼不一樣?
①在node中沒有DOM和BOM的概念 所以不會涉及到兼容
②node中的global process這些屬性都是瀏覽器沒有的
③node能夠用來搭建服務器,數據庫
④node能夠用來調用底層的API 能夠作文件的讀寫等操做

 

七、node優勢
優勢:高效 速度快 適合作高併發的項目
缺點:不適合作大量計算的項目

 

八、node的交互模式
node 回車進入交互模式
退出:
ctrl+c 2次
或者 ctrl+d 一次

 

九、node如何運行js文件
  node.js文件名

 

十、模塊化
requireJs     seaJS       CommonJS      ES6 module
   異步           異步             同步                  同步
AMD            CMD           common             import

 

模塊化規範?
如何導出模塊 如何接收模塊:
define定義  return導出   require接收(requireJs )
 
module.exports 導出   require 導入(commonJS)
 

export default 導出    import 導入 (ES6 module)javascript

 

十一、node中的模塊分爲如下三種
①核心模塊
②自定義模塊
③第三方模塊

 

十二、(注意:<>不須要寫)
npm
cnpm install package.json依賴安裝

cnpm install <包名> -g 全局安裝css

cnpm install <包名> --save-dev 局部安裝 cnpm i <包名> -Shtml

cnpm uninstall <包名> 卸載java

cnpm update <包名> 更新node

cnpm clear cache 清除緩存jquery

 

1三、
①npm init 建立node的包 保證包名全網惟一
②npm login
③npm publish 上傳  上傳到npm官網

 

1四、 yarn
①緩存
②異步

cnpm install jquery qs url -S(加載jquery qs url爲同步:按順序執行)chrome

yarn add jquery qs url(加載jquery qs url爲異步:同時分開執行)
 
cnpm install yarn -g   全局安裝

yarn install === cnpm install   package.json依賴安裝數據庫

yarn add <包名> === cnpm install <包名> -S 局部安裝npm

yarn add <包名> --dev == cnpm install <包名> --save-dev 局部安裝json

yarn upgrade <包名> 更新

yarn remove <包名> 刪除

 

//引入http模塊  node的核心模塊
const http = require("http");

/*
    //商場
   const server =  http.createServer()  建立服務器

    //端口號
    server.listen(9000)



    用戶說:"商店裏面有沒有澡巾"
    url:"http://ww.baidu.com/data"

    人民幣
    get post

    要綠色  多大號的
    headers:{
        "content-type":"application/json"{name:val,pass:val}
                      "application/x-www-form-urlencoded"  表單序列化
                        name=val&pass=val

                        "{'name':'zhangsan','age':19}"
    }





    回覆
        res.end() + res.write  最後的回覆
        res.write();   響應

        content-tyepe

*/

http.createServer((req,res)=>{ console.log(req.headers) /* req:request req.url 請求的地址 req.method 請求的方式 req.headers 請求頭 req.body 接收post傳遞的參數 req.query 接收get傳遞過來的參數 req.request() 接收任意方式傳遞過來的數據 res:response res.write() 回覆響應信息 能夠調用不少次 res.end() 回覆響應信息 作結尾 只能調用一次 res.statusCode 設置狀態碼 res.setheader() 設置響應頭 res.writeHead(); statusCode 與setHeader的綜合寫法 第一次參數是狀態碼 第二次參數是響應頭的類型 */ //res.statusCode = 200; //res.setHeader("content-type","text/plain"); res.writeHead(200,{"content-type":"text/plain;charset=utf8"}); res.write("1111"); res.write("2222"); res.end("你好"); }).listen(9000) //提示信息 console.log("http://localhost:9000") /* 響應頭的類型有哪些? text/plain 文本類型 text/html html類型 text/css css類型 application/x-javascript js類型 application/json json類型 application/xml xml類型 image/png jpg gif */

小案例:

moduleA.js

const moduleA = require("./moduleB");
const cheerio = require("cheerio");

console.log(moduleA._name);
console.log(moduleA.fn("哈哈"))

moduleB.js

let _name = "張三";
let fn = (name)=>{
    console.log(name);
}


module.exports = {
    _name,
    fn
}
相關文章
相關標籤/搜索