初始node 三

weixiwo發表於2020-12-12

這幾天又開始瘋狂學習了哈哈

1.each與forEach

each是art-template的模板語法

{{each 陣列}}
<li>item</li>
{{/each}}

301 永久重定向 瀏覽器會記住

302 臨時重定向 瀏覽器不記憶

2.模組系統

1.EcmaScript語言

2.核心模組

3.第三方模組

common.js模組規範 檔案作用域 通訊規則。在node中js還有模組。

3.載入與匯出的使用規則

var foo = 'bar';
function add(x,y){
    return x+y;
}
exports.add = add;
// 如果一個模組需要直接匯出一個成員,而非是一個物件
// module.exports = add
//1.使用reuire方法載入物件
// 執行被載入模組中程式碼
// 得到被載入模組中exports匯出的介面物件
//2. 使用exports介面物件來匯出模組中成員

// 可以node中每個模組中都有一個自己的module物件
// 在module物件中,有一個成員叫exports
// var module = {
//     exports:{

//     }
// }

// 無論誰來require我,在程式碼最後一句是
// return module.exports
// 因為在每次匯出介面成員時,都需要把匯出的module.exports.xxx=xxx
// 太麻煩,所以在node中module.exports = exports
// 所以exports是module.exports的一個引用
// 如果給exports重新賦值就不管用

// 如果是module.exports = 'hello';
// exports.foo = 'world';
// 給exports重新賦值會斷開引用,同理給module.exports重新賦值也會斷開引用

4.優先從快取載入

在這裡插入圖片描述
由於已經從a中載入過了,所以不會從b中再次載入。就直接從快取中載入,這樣就避免了重複載入

5.require方法載入

require時,判斷模組是哪種型別。如果是非路徑形式的模組標識,就是其他系統模組

核心模組的本質也是檔案,已經被編譯到了二進位制檔案中,我們只需要按照名字來載入就可以了。

第三方模組,凡是第三方模組都必須通過npm來下載,使用的時候就可以通過require(‘包名’)的方式進行載入才可以使用

var template = require(‘art-template’)

先找到當前檔案中的node_modules目錄

然後找到node_modules/art-template

然後找到node_modules/art-template/package.json檔案

然後找到node_modules/art-template/package.json的main屬性

如果main入口檔案沒有寫要做什麼就預設載入index.js

如果所有條件都不會成立,就會進入上一級目錄中node_modules目錄查詢,如果上上級沒有還沒有,繼續向上找,值到找到磁碟根目錄

6.包說明檔案

// 包描述檔案
//package.json保留了下載第三方包
// 包說明檔案 描述專案依賴
// npm i art-tempalte --save
// 就是依賴,就是當前專案依賴了art-template
// npm init -y
// 自動建立檔案

7.npm常用命令

// npm 下載
// npm 命令列工具 
// npm i -g npm 升級npm
// npm unnistall 包名 只刪除,如果有依賴項,依然會保留
// npm unnistall 包名 --save 刪除同時刪除依賴

8.express安裝

npm i express

const express = require('express');
// 建立server伺服器 express()相當於建立了一個伺服器
var app = express();
app.get('/',function(req,res){
    res.end('hello world');
})
app.get('/about',function(req,res){
    res.send('你好,我是express');
})
app.listen(3000,function(){
    console.log('app is runnig at 3000');
});
// 如何開放資源 :3000/public/main.js
// 指定公開靜態開放目錄 app.use('/public/',express.static('./public'));
// 就不用自己寫了
app.use('/public/',express.static('./public/'));

9.大致瞭解express

在express引數中,可以直接通過req.query來獲取引數,查詢字串

在expree中有如何使用模板引擎的更好方法,res.render(‘檔名’,{模板物件})

雖然有點累,但是大家加油!!!

相關文章