日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nodejs笔记

發(fā)布時間:2024/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?

# Node.js 第1天

# Node.js 第2天課堂筆記

# Node.js 第3天課堂筆記

# Node.js 第4天課堂筆記

# Node.js 第5天課堂筆記

# Node.js 第6天課堂筆記

# Node.js 第7天課堂筆記


# Node.js 第1天

## 上午總結(jié)

- Node.js 是什么
? + JavaScript 運行時
? + 既不是語言,也不是框架,它是一個平臺
- Node.js 中的 JavaScript
? + 沒有 BOM、DOM
? + EcmaScript 基本的 JavaScript 語言部分
? + 在 Node 中為 JavaScript 提供了一些服務(wù)器級別的 API
? ? * 文件操作的能力
? ? * http 服務(wù)的能力

## 總結(jié)

- Node 中的 JavaScript
? + EcmaScript
? ? * 變量
? ? * 方法
? ? * 數(shù)據(jù)類型
? ? * 內(nèi)置對象
? ? * Array
? ? * Object
? ? * Date
? ? * Math
? + 模塊系統(tǒng)
? ? * 在 Node 中沒有全局作用域的概念
? ? * 在 Node 中,只能通過 require 方法來加載執(zhí)行多個 JavaScript 腳本文件
? ? * require 加載只能是執(zhí)行其中的代碼,文件與文件之間由于是模塊作用域,所以不會有污染的問題
? ? ? - 模塊完全是封閉的
? ? ? - 外部無法訪問內(nèi)部
? ? ? - 內(nèi)部也無法訪問外部
? ? * 模塊作用域固然帶來了一些好處,可以加載執(zhí)行多個文件,可以完全避免變量命名沖突污染的問題
? ? * 但是某些情況下,模塊與模塊是需要進行通信的
? ? * 在每個模塊中,都提供了一個對象:`exports`
? ? * 該對象默認是一個空對象
? ? * 你要做的就是把需要被外部訪問使用的成員手動的掛載到 `exports` 接口對象中
? ? * 然后誰來 `require` 這個模塊,誰就可以得到模塊內(nèi)部的 `exports` 接口對象
? ? * 還有其它的一些規(guī)則,具體后面講,以及如何在項目中去使用這種編程方式,會通過后面的案例來處理
? + 核心模塊
? ? * 核心模塊是由 Node 提供的一個個的具名的模塊,它們都有自己特殊的名稱標識,例如
? ? ? - fs 文件操作模塊
? ? ? - http 網(wǎng)絡(luò)服務(wù)構(gòu)建模塊
? ? ? - os 操作系統(tǒng)信息模塊
? ? ? - path 路徑處理模塊
? ? ? - 。。。。
? ? * 所有核心模塊在使用的時候都必須手動的先使用 `require` 方法來加載,然后才可以使用,例如:
? ? ? - `var fs = require('fs')`
- http
? + require
? + 端口號
? ? * ip 地址定位計算機
? ? * 端口號定位具體的應(yīng)用程序
? + Content-Type
? ? * 服務(wù)器最好把每次響應(yīng)的數(shù)據(jù)是什么內(nèi)容類型都告訴客戶端,而且要正確的告訴
? ? * 不同的資源對應(yīng)的 Content-Type 是不一樣,具體參照:http://tool.oschina.net/commons
? ? * 對于文本類型的數(shù)據(jù),最好都加上編碼,目的是為了防止中文解析亂碼問題
? + 通過網(wǎng)絡(luò)發(fā)送文件
? ? * 發(fā)送的并不是文件,本質(zhì)上來講發(fā)送是文件的內(nèi)容
? ? * 當瀏覽器收到服務(wù)器響應(yīng)內(nèi)容之后,就會根據(jù)你的 Content-Type 進行對應(yīng)的解析處理

- 模塊系統(tǒng)
- Node 中的其它的核心模塊
- 做一個小管理系統(tǒng):
? + CRUD
- Express Web 開發(fā)框架
? + `npm install express`
?

?

?

?

# Node.js 第2天課堂筆記

## 知識點

## 反饋

- 老師像我一同學 但我知道 我同學沒這么牛逼。。。
? + 學習、分享、交流
- 老師 講講sumblie需要安裝哪些插件把 以及怎么用Md結(jié)尾的文檔,對于我們來說好像就是一個閱讀器一樣使用………………
? + HTML 也是標記語言
? + markdown 標記語言
? + `#` 就是標題
? + `-`、`*` 就是列表
? + `**加粗內(nèi)容**`
? + `GFM`
- 第一天上課 給我感覺挺好的 就是老師可能對早下課是不是有什么誤解 我們平時都是 五點半放學的 ,還有就是有點啰嗦,那個不能起a呀b呀我感覺聽了不下 五遍 我都要被你笑哭了
- 老師講的挺好的
- 后來講的速度有點上來了!
- ?老師很耐心!
- 老師講的課很好!
- ?感覺老師講的有點快,語速快
- 沒有對比就沒有傷害 體驗了一把 普通話標準 英語發(fā)音又標準 幸福感
- 感覺老師講課的風格簡單利落,思路清晰。 nice
- ?結(jié)尾不寫分號是老師寫的es6的代碼風格,還是老師懶得寫?

### 代碼風格

```javascript
var foo = 'bar'
var foo ='bar'
var foo= 'bar'
var foo = "bar"

if (true) {
? console.log('hello')?
}

if (true) {
? ? console.log('hello')?
}

if (true ){
? ? ? console.log('hello')?
}
```

為了約定大家的代碼風格,所以在社區(qū)中誕生了一些比較規(guī)范的代碼風格規(guī)范:dnsajkndkjsabnjkdnjksandjknsajkdnjkasnjkdnjksandjknsajkdnjksajkdnas

- [JavaScript Standard Style](https://standardjs.com/)
- Airbnb JavaScript Style

## 復習

## 上午總結(jié)

- 代碼風格
- 無分號
? + `(`
? + `[`
? + `
? + 最好前面補分號,避免一些問題
? + 《編寫可維護的 JavaScript》
? + 不僅是功能,還要寫的漂亮
- 服務(wù)端渲染
? + 說白了就是在服務(wù)端使用模板引擎
? + 模板引擎最早誕生于服務(wù)端,后來才發(fā)展到了前端

- 服務(wù)端渲染和客戶端渲染的區(qū)別
? + 客戶端渲染不利于 SEO 搜索引擎優(yōu)化
? + 服務(wù)端渲染是可以被爬蟲抓取到的,客戶端異步渲染是很難被爬蟲抓取到的
? + 所以你會發(fā)現(xiàn)真正的網(wǎng)站既不是純異步也不是純服務(wù)端渲染出來的
? + 而是兩者結(jié)合來做的
? + 例如京東的商品列表就采用的是服務(wù)端渲染,目的了為了 SEO 搜索引擎優(yōu)化
? + 而它的商品評論列表為了用戶體驗,而且也不需要 SEO 優(yōu)化,所以采用是客戶端渲染

## 下午總結(jié)
?

# Node.js 第3天課堂筆記

## 知識點

- 增刪改查
- 登陸
- 注冊
- 頭像
? + 服務(wù)端圖片
? + 水印
? + 圖片水印
- 找回密碼
- 密碼修改

- 模塊系統(tǒng)
? + 核心模塊
? + 第三方模塊
? + 自己寫的模塊
? + 加載規(guī)則以及加載機制
? + 循環(huán)加載
- npm
- package.json
- Express
? + 第三方 Web 開發(fā)框架
? + 高度封裝了 http 模塊
? + 更加專注于業(yè)務(wù),而非底層細節(jié)
? + 知其所以然
- 增刪改查
? + 使用文件來保存數(shù)據(jù)(鍛煉異步編碼)
- MongoDB
? + (所有方法都封裝好了)

## 反饋

- ?希望老師再推薦一些前端學習的書籍,謝謝!
? + ?《JavaScript 高級編程》第3班
? + ?學習,解決問題
? + ?書本可以更好的系統(tǒng)的整理學過的內(nèi)容,了解一些細節(jié)
? + ?《JavaScript 語言精粹》
- seo的資料,嘿嘿
? + 網(wǎng)站運營 SEO
? + SEO 運營專員
? + 百度、Google、搜狗、
- 最后老師那個怎么做案例的步驟真的是很有用 覺得今天的反饋 大概又是夸老師的比較多 老師聲音很有特點
- 老師講的很仔細,雖然語速有點快但是會重復很多遍,即使第一遍沒聽會第二遍第三遍也懂了.很好.
- ?使用markdown一次只能打開一個文件,不知道怎么建文件夾,是需要安插件嗎?
- ?老師,軟件版本的升級是以什么作為理論支持的,為什么跳躍間隙可以這么大?還有,看上了老師的電子圖書館,瞬間好愛學習呀,真的!
? + ?軟件開發(fā)版本里面涉及到軟件工程學:?
? + ?x.x.x
? ? * ?0.0.1
? ? * ?0.0.2
? ? * ?1.1.5
? ? * ?1.9.2
? ? * ?2(新增功能比較多,甚至可能去除了某些功能).5(加入了新功能).0(修復bug,提升性能)
? ? * ?大版本
? ? * ?一般是這些客戶端軟件、技術(shù)框架開發(fā)者比較理解的多
? ? * ?做網(wǎng)站很少涉及到版本的概念,網(wǎng)站的目的就是快
- art-template里面用的語法是jQuery嗎, each什么的 我暈了 each,forEach, 遍歷的全混了
? + art-template 和 jQuery 一毛錢關(guān)系都沒有
? + each 是 art-template 的模板語法,專屬的
? + {{each 數(shù)組}}
? + <li>{{ $value }}</li>
? + {{/each}} 這是 art-template 模板引擎支持的語法,只能在模板字符串中使用
? + $.each(數(shù)組, function)
? + $('div').each(function) 一般用于遍歷 jQuery 選擇器選擇到的偽數(shù)組實例對象
? + forEach 是 EcmaScript 5 中的一個數(shù)組遍歷函數(shù),是 JavaScript 原生支持的遍歷方法 可以遍歷任何可以被遍歷的成員
? + jQuery 的 each 方法和 forEach 幾乎一致
? + 由于 forEach 是 EcmaScript 5 中的,所以低版本瀏覽器不支持
- 每一次的復習賊重要 老師很不錯 我喜歡
- 在以后的工作中 用到node.js的地方多嗎? 在留言本的案例中 點擊發(fā)表留言跳轉(zhuǎn)頁面的路徑是url路徑 和之前寫的頁面跳轉(zhuǎn)寫的文件路徑還是有點分不清。
? + 技多不壓身
? + Node 對于前端來講是進階高級前端開發(fā)工程師必備的技能
? + 屌絲最容易逆襲的職業(yè)
? + 見得東西多了你就不怕了
? + 為所欲為
- ?老師講的挺清晰的 可是第一節(jié)太困了 路徑有點沒轉(zhuǎn)變過來
- 如果從a中調(diào)用b中的數(shù)據(jù),又從b中調(diào)用a中的數(shù)據(jù),執(zhí)行a代碼,為什么把b中的執(zhí)行完后才會執(zhí)行a,而不是在b調(diào)用a的時候a中的代碼繼續(xù)執(zhí)行
? + a 加載了 b
? ? * 執(zhí)行 b 中的代碼
? ? * 同時得到 b 中導出的接口對象:exports
? ? * 執(zhí)行 b 的過程中發(fā)現(xiàn) b 也在 require a
? ? * b 就會反過來執(zhí)行 a
? ? * a 中又加載 b
? ? * b 又反過來加載 a
? ? * 這就是循環(huán)加載
? ? * 如果你一旦出現(xiàn)了這種情況,說明你的思路有問題。
? ? * jQuery.js (可能不可能出現(xiàn) jQuery 依賴了 main)
? ? * main.js 依賴了 jQuery
? ? * 這個問題是矛盾。
? + b 中也加載了 a
? +?
? + 網(wǎng)頁中所有的路徑其實都是 url 路徑,不是文件路徑
- 問題就是不知道問題是什么,寫案例的時候似懂非懂
- 感覺思維有點跟不上,

## 復習

- 網(wǎng)站開發(fā)模型
? + 黑盒子、啞巴
? + 寫代碼讓它變得更智能
? + 按照你設(shè)計好的套路供用戶使用

- 在 Node 中使用 art-template 模板引擎
? + 安裝
? + 加載
? + template.render()
- 客戶端渲染和服務(wù)端渲染的區(qū)別
? + 最少兩次請求,發(fā)起 ajax 在客戶端使用模板引擎渲染
? + 客戶端拿到的就是服務(wù)端已經(jīng)渲染好的
- 處理留言本案例首頁數(shù)據(jù)列表渲染展示
- 處理留言本案例發(fā)表留言功能
? + 路徑
? + 設(shè)計好的請求路徑
? + $GET 直接或查詢字符串數(shù)據(jù)
? + Node 中需要咱們自己動手來解析
? ? * url.parse()
? + /pinglun?name=jack&message=hello
? + split('?')
? + name=jack&message=hello
? + split('&')
? + name=jack message=hello
? + forEach()
? + name=jack.split('=')
? + 0 key
? + 1 value
- 掌握如何解析請求路徑中的查詢字符串
? + url.parse()
- 如何在 Node 中實現(xiàn)服務(wù)器重定向
? + header('location')
? ? * 301 永久重定向 瀏覽器會記住
? ? ? - a.com b.com
? ? ? - a 瀏覽器不會請求 a 了
? ? ? - 直接去跳到 b 了
? ? * 302 臨時重定向 瀏覽器不記憶
? ? ? - a.com b.com
? ? ? - a.com 還會請求 a
? ? ? - a 告訴瀏覽器你往 b
- Node 中的 Console(REPL)使用

## 上午總結(jié)

- jQuery 的 each 和 原生的 JavaScript 方法 forEach
? + EcmaScript 5 提供的
? ? * 不兼容 IE 8
? + jQuery 的 each 由 jQuery 這個第三方庫提供
? ? * jQuery 2 以下的版本是兼容 IE 8 的
? ? * 它的 each 方法主要用來遍歷 jQuery 實例對象(偽數(shù)組)
? ? * 同時它也可以作為低版本瀏覽器中 forEach 替代品
? ? * jQuery 的實例對象不能使用 forEach 方法,如果想要使用必須轉(zhuǎn)為數(shù)組才可以使用
? ? * `[].slice.call(jQuery實例對象)`
- 模塊中導出多個成員和導出單個成員
- 301 和 302 狀態(tài)碼區(qū)別
? + 301 永久重定向,瀏覽器會記住
? + 302 臨時重定向
- exports 和 module.exports 的區(qū)別
? + 每個模塊中都有一個 module 對象
? + module 對象中有一個 exports 對象
? + 我們可以把需要導出的成員都掛載到 module.exports 接口對象中
? + 也就是:`moudle.exports.xxx = xxx` 的方式
? + 但是每次都 `moudle.exports.xxx = xxx` 很麻煩,點兒的太多了
? + 所以 Node 為了你方便,同時在每一個模塊中都提供了一個成員叫:`exports`
? + `exports === module.exports` 結(jié)果為 ?`true`s
? + 所以對于:`moudle.exports.xxx = xxx` 的方式 完全可以:`expots.xxx = xxx`
? + 當一個模塊需要導出單個成員的時候,這個時候必須使用:`module.exports = xxx` 的方式
? + 不要使用 `exports = xxx` 不管用
? + 因為每個模塊最終向外 `return` 的是 `module.exports`
? + 而 `exports` 只是 `module.exports` 的一個引用
? + 所以即便你為 `exports = xx` 重新賦值,也不會影響 `module.exports`
? + 但是有一種賦值方式比較特殊:`exports = module.exports` 這個用來重新建立引用關(guān)系的
? + 之所以讓大家明白這個道理,是希望可以更靈活的去用它
- Node 是一個比肩 Java、PHP 的一個平臺
? + JavaScript 既能寫前端也能寫服務(wù)端

```javascript
moudle.exports = {
? a: 123
}

// 重新建立 exports 和 module.exports 之間的引用關(guān)系
exports = module.exports

exports.foo = 'bar'
```

```javascript
Array.prototype.mySlice = function () {
? var start = 0
? var end = this.length
? if (arguments.length === 1) {
? ? start = arguments[0]
? } else if (arguments.length === 2) {
? ? start = arguments[0]
? ? end = arguments[1]
? }
? var tmp = []
? for (var i = start; i < end; i++) {
? ? // fakeArr[0]
? ? // fakeArr[1]
? ? // fakeArr[2]
? ? tmp.push(this[i])
? }
? return tmp
}

var fakeArr = {
? 0: 'abc',
? 1: 'efg',
? 2: 'haha',
? length: 3
}

// 所以你就得到了真正的數(shù)組。?
[].mySlice.call(fakeArr)
```

## 下午總結(jié)

- jQuery 的 each 和 原生的 JavaScript 方法 forEach
- 301 和 302 的區(qū)別
- 模塊中導出單個成員和導出多個成員的方式
- module.exports 和 exports 的區(qū)別
- require 方法加載規(guī)則
? + 優(yōu)先從緩存加載
? + 核心模塊
? + 路徑形式的模塊
? + 第三方模塊
? ? * node_modules
- package.json 包描述文件
? + dependencies 選項的作用
- npm 常用命令
- Express 基本使用

- 使用 Express 把之前的留言本案例自己動手改造一下
?

?

?

# Node.js 第4天課堂筆記

## 知識點

- Express
- 基于文件做一套 CRUD

## 反饋

- 需要記憶的內(nèi)容比較多,還是得多敲多練
- ?竟以為老師是理工男!!!老師每天來一波驚喜吧,魅力值up up up!
- ?老師很可愛,很喜歡,學習有動力,哈哈哈哈哈哈哈哈
? + ?嚶嚶嚶
- php什么的相關(guān)知識,老師可能大概也許說過,但是我清楚的知道,我是真的不知道,對我來說就是新知識。恩 所以,你沒有重復
- 給老師點贊
- QAQ
? + @_@

## 復習

- jQuery 的 each 和 原生的 JavaScript 方法 forEach
- 301 和 302 的區(qū)別
- 模塊中導出單個成員和導出多個成員的方式
? + `module.exports = xxx`
? + 通過多次:`exports.xxx = xxx`
? + 導出多個也可以:`moudle.exports = {多個成員}`
- module.exports 和 exports 的區(qū)別
? + exports 只是 module.exports 的一個引用而已,目的只是為了簡化寫法
? + 每個模塊最終 return 的是 module.exports
- require 方法加載規(guī)則
? + 優(yōu)先從緩存加載
? + 核心模塊
? + 路徑形式的模塊
? ? * `./xxx`
? ? * `../xxxx`
? ? * `/xxxx` / 在這里表示的是磁盤根路徑
? ? * `c:/xxx`
? + 第三方模塊
? ? * 第三方模塊的標識就是第三方模塊的名稱(不可能有第三方模塊和核心模塊的名字一致)
? ? * npm
? ? ? - 開發(fā)人員可以把寫好的框架、庫發(fā)布到 npm 上
? ? ? - 使用者在使用的時候就可以很方便的通過 npm 來下載
? ? * 使用方式:`var 名字 = require('npm install 的那個包名')`
? ? * node_modules
? ? * node_modules/express
? ? * node_modules/express/package.json
? ? * node_modules/express/package.json main
? ? * 如果 package.json 或者 package.json main 不成立,則查找備選項:index.js
? ? * 如果以上條件都不成立,則繼續(xù)進入上一級目錄中的 node_modules 按照上面的規(guī)則繼續(xù)查找
? ? * 如果直到當前文件模塊所屬磁盤根目錄都找不到,最后報錯:`can not find module xxx`
- package.json 包描述文件
? + 就是產(chǎn)品的說明書
? + `dependencies` 屬性,用來保存項目的第三方包依賴項信息
? + 所以建議每個項目都要有且只有一個 package.json (存放在項目的根目錄)
? + 我們可以通過 `npm init [--yes]` 來生成 package.json 文件
? + 同樣的,為了保存依賴項信息,我們每次安裝第三方包的時候都要加上:`--save` 選項。
- npm 常用命令
? + install
? + uninstall
- Express 基本使用
- 使用 Express 把之前的留言本案例自己動手改造一下

### 模塊標識中的 `/` 和文件操作路徑中的 `/`

## 上午總結(jié)

### 演講

> 說服
> PPT
> 腦圖
> markdown
> 結(jié)構(gòu)思維

- 找痛點 why 為什么
- 解決方案 what 是什么
- 怎么去使用 how 怎么用
- where 在哪兒用
- when ?什么時候用

- 文件路徑中的 `/` 和模塊標識中的 `/`
- nodemon
- Express
? + art-template 模板引擎的配置
? + body-parser 解析表單 POST 請求體
- 技術(shù)只是一種解決問題的手段、工具而已
? + 第三方的東西,不要糾結(jié)
? + 先以解決問題為主
- 詳解了 express 靜態(tài)服務(wù) API
? + app.use('/public/', express.static('./public'))
- crud

## 下午總結(jié)

## 目標

- 文件路徑中的 `/` 和模塊標識中的 `/`
- Express 中配置使用 art-template 模板引擎
- Express 中配置使用 body-parser
- Express 中配置處理靜態(tài)資源
- CRUD 案例中單獨提取路由模塊
?

# Node.js 第5天課堂筆記

## 知識點

- Express
- MongoDB
- 項目
? + 一天半的時間

## 反饋

- ?新版sublime 怎么格式化 怎么一起選中長度不等的內(nèi)容 怎么改顏色 有的寫對了也沒顏色 仍然是白色
? + ?HTML-CSS-JS Prettify
- ?代碼量好多
? + ?真正的開發(fā)是咱們這個小案例的無數(shù)倍
- ?callback是不是相當于函數(shù)自調(diào)用?
? + ?很簡單,函數(shù)也是一種數(shù)據(jù)類型,既可以當作參數(shù)進行傳遞,也可以當作方法的返回值
- 我們現(xiàn)在用的模塊化是CMD吧 老師能不能給我們擴展一下AMD
? + PHP 中為什么就可以直接 `require`、`include` 因為 PHP 當初在設(shè)計的時候就加入了這個功能
? + PHP 這門語言天生就支持
? + 模塊作用域
? + 可以使用 API 來進行文件與文件之間的依賴加載
? + 在 Node 這個環(huán)境中對 JavaScript 進行了特殊的模塊化支持 CommonJS
? + JavaScript 天生不支持模塊化
? ? * require
? ? * exports
? ? * Node.js 才有的
? + 在瀏覽器中也可以像在 Node 中的模塊一樣來進行編程
? ? * `<script>` 標簽來引用加載,而且你還必須考慮加載的順序問題
? ? * require.js 第三方庫 AMD
? ? * sea.js ? ? 第三方庫 CMD
? + 無論是 CommonJS、AMD、CMD、UMD、EcmaScript 6 Modules 官方規(guī)范
? ? * 都是為了解決 JavaScript 的模塊化問題
? ? * CommonJS、AMD、CMD 都是民間搞出來的
? ? * EcmaScript 是官方規(guī)范定義
? ? * 官方看民間都在亂搞,開發(fā)人員為了在不同的環(huán)境使用不同的 JavaScript 模塊化解決方案
? ? * 所以 EcmaScript 在 2015 年發(fā)布了 EcmaScript 2016 官方標準
? ? * 其中就包含了官方對 JavaScript 模塊化的支持
? ? * 也就是說語言天生就支持了
? ? * 但是雖然標準已經(jīng)發(fā)布了,但是很多 JavaScript 運行換將還不支持
? ? * Node 也是只在 8.5 版本之后才對 EcmaScript 6 module 進行了支持
? ? * 后面學 Vue 的時候會去學習
? ? * less 編譯器 > css
? ? * EcmaScript 6 -> 編譯器 -> EcmaScript 5
? ? * 目前的前端情況都是使用很多新技術(shù),然后利用編譯器工具打包可以在低版本瀏覽器運行。
? ? * 使用新技術(shù)的目的就是為了提高效率,增加可維護性
- ?內(nèi)心極度脆弱。。。有心殺敵 無力回天,總感覺時間不夠用。
? + ?不要猥瑣發(fā)育,就得浪
- 雖然比較多 但是因為老師講的很清晰 還是愿意去寫的 對于 node.js 的奧義 封裝異步的API 就是需要多練
- 老師講的很清晰 講課也很灑脫 老師是不是被夸的已經(jīng)習慣了 后面講的回掉函數(shù)有點懵了
- 老師講的很好,思路清晰,項目跟著老師的筆記一步一步敲,so easy
- ?覺得老師講課真的超級棒啊 傳智的實力擔當 雙擊沒毛病 老鐵666
- 都坐下 基本操作 哇,老師,一般敢說這句話的都是大神,我還是個菜鳥,學的那是一臉懵逼
- ?有點懵,看著老師的思路做,可是還是不知道從何入手,唉。。。
? + ?本著達芬奇畫雞蛋的精神
? + ?《使徒行者》三哥
? + ?《反黑》陳小春
? ? * ?臥底 8年臥底
? ? * ?文職工作
? ? * ?報了電腦版
? ? * ?吃飯都在看書
? ? * ?學習 -》吃飯也是看書
? ? * ?邊角余料
- var router = require('./router') 這一步不是加載router.js并執(zhí)行該文件嗎 為什么還要執(zhí)行app.use(router) app.use 不是開放靜態(tài)資源嗎 app.use(router)在這里是什么意思,掛載到 app 服務(wù)中的意思是? module.exports = app 也不懂
? + 這里涉及到一個中間件的概念
? + app.use 不僅僅是用來處理靜態(tài)資源的
? + 還可以做很多工作
? + 配置 body-parse 也是通過 app.use 來配置的
? + 這叫中間件,其中有一套規(guī)則
- npm init --yes 生成一個package.json 文件 npm --save 文件名 又生成一個package-lock.json文件,又生成的文件和初始化生成的文件有區(qū)別嗎?
? + 當你安裝包的時候,新版的 npm 還會自動生成一個文件:package-lock.json
- ?早上聽的還可以,下午感覺一頭蒙,還好老師講了晚上自己做案例的具體步驟,不然感覺無從下手,還是反饋多一點好,還可以回顧回顧,不然感覺老師一天講的知識太多了,消化不了,嚶嚶嚶~~~
- 其實拖堂的效率也不高啊。。可能是我天資愚笨
? + 對自己有信息
? + 擼起袖子加油干、一張藍圖繪到底
- ?老師你好,每節(jié)課的事件有點長,上課時間長注意力就容易模糊。聽課效率確實有問題,有時候同桌都快憋不住了,為了不丟下知識點,依舊在憋著,好擔心...
- 為什么模板引擎在app.js中引入之后在router.js中不引入可以直接使用,而express還需要在router.js中再引入一次 app.js中路由器掛載不是很懂 router.js中為什么要創(chuàng)建一個路由器容器,不知道作用是干什么的 es6中的find方法不是很懂
? + 中間件
? + EcmaScript 6 的 find 方法
- 老師,你后來講的回調(diào)函數(shù)那里,關(guān)于增刪改查案例一個已經(jīng)夠嗆了,你竟然在最后都講完了; 雖然增刪改查文件的操作在php之前講過,但是真的忘了,而且php學的也不好; 還有:對于php是世界上最好的語言,我持懷疑態(tài)度,覺得它是世界上最難理解的語言; 誒!苦惱!又來了一個node,知道后邊的boss都很難應(yīng)付,比如什么angular、react和vue,現(xiàn)在其實也做好了心理準備! 來者不拒吧!看來這一個月注定是一個煎熬的日子!
? + PHP 是世界上最好的語言(貶義)
? + 一切我抗
- 在express框架中怎么判斷訪問頁面不存在的情況?

## 復習

- 文件路徑中的 `/` 和模塊標識中的 `/`
- Express 中配置使用 art-template 模板引擎
- Express 中配置使用 body-parser
- Express 中配置處理靜態(tài)資源
- CRUD 案例中單獨提取路由模塊

## 上午總結(jié)

- 回調(diào)函數(shù)
? + 異步編程
? + 如果需要得到一個函數(shù)內(nèi)部異步操作的結(jié)果,這是時候必須通過回調(diào)函數(shù)來獲取
? + 在調(diào)用的位置傳遞一個函數(shù)進來
? + 在封裝的函數(shù)內(nèi)部調(diào)用傳遞進來的函數(shù)
- find、findIndex、forEach
? + 數(shù)組的遍歷方法,都是對函數(shù)作為參數(shù)一種運用
? ? + every
? + some
? + includes
? + map
? + reduce
- package-lock.json 文件的作用
? + 下載速度快了
? + 鎖定版本
- JavaScript 模塊化
? + Node 中的 CommonJS
? + 瀏覽器中的
? ? * AMD require.js
? ? * CMD sea.js
? + EcmaScript 官方在 EcmaScript 6 中增加了官方支持
? + EcmaScript 6
? + 后面我們會學,編譯工具
- MongoDB 數(shù)據(jù)庫
? + MongoDB 的數(shù)據(jù)存儲結(jié)構(gòu)
? ? * 數(shù)據(jù)庫
? ? * 集合(表)
? ? * 文檔(表記錄)
- MongoDB 官方有一個 mongodb 的包可以用來操作 MongoDB 數(shù)據(jù)庫
? + 這個確實和強大,但是比較原始,麻煩,所以咱們不使用它
- mongoose
? + 真正在公司進行開發(fā),使用的是 mongoose 這個第三方包
? + 它是基于 MongoDB 官方的 mongodb 包進一步做了封裝
? + 可以提高開發(fā)效率
? + 讓你操作 MongoDB 數(shù)據(jù)庫更方便
- 掌握使用 mongoose 對數(shù)據(jù)集合進行基本的 CRUD
- 把之前的 crud 案例改為了 MongoDB 數(shù)據(jù)庫版本
- 使用 Node 操作 mysql 數(shù)據(jù)庫

## 下午總結(jié)

## 目標
?

# Node.js 第6天課堂筆記

## 知識點

- 多人社區(qū)案例

## 反饋

## 復習

- MongoDB 數(shù)據(jù)庫
? + 靈活
? + 不用設(shè)計數(shù)據(jù)表
? + 業(yè)務(wù)的改動不需要關(guān)心數(shù)據(jù)表結(jié)構(gòu)
? + DBA 架構(gòu)師 級別的工程師都需要掌握這項技能
? ? * 設(shè)計
? ? * 維護
? ? * 分布式計算
- mongoose
? + mongodb 官方包也可以操作 MongoDB 數(shù)據(jù)庫
? + 第三方包:WordPress 項目開發(fā)團隊
? + 設(shè)計 Schema
? + 發(fā)布 Model(得到模型構(gòu)造函數(shù))
? ? * 查詢
? ? * 增加
? ? * 修改
? ? * 刪除
- Promise
? + http://es6.ruanyifeng.com/#docs/promise
? + callback hell 回調(diào)地獄
? + 回調(diào)函數(shù)中套了回調(diào)函數(shù)
? + Promise(EcmaScript 6 中新增了一個語法 API)
? + 容器
? ? * 異步任務(wù)(pending)
? ? * resolve
? ? * reject
? + then 方法獲取容器的結(jié)果(成功的,失敗的)
? + then 方法支持鏈式調(diào)用
? + 可以在 then 方法中返回一個 promise 對象,然后在后面的 then 方法中獲取上一個 then 返回的 promise 對象的狀態(tài)結(jié)果

## 上午總結(jié)

## 下午總結(jié)

## 總結(jié)

- path 模塊
- __dirname 和 __filename
? + **動態(tài)的** 獲取當前文件或者文件所處目錄的絕對路徑
? + 用來解決文件操作路勁的相對路徑問題
? + 因為在文件操作中,相對路徑相對于執(zhí)行 `node` 命令所處的目錄
? + 所以為了盡量避免這個問題,都建議文件操作的相對路勁都轉(zhuǎn)為:**動態(tài)的絕對路徑**
? + 方式:`path.join(__dirname, '文件名')`
- art-template 模板引擎(include、block、extend)
? + include
? + extend
? + block
- 表單同步提交和異步提交區(qū)別
? + 以前沒有 ajax 都是這么干的,甚至有些直接就是渲染了提示信息出來了
? + 異步提交頁面不會刷新,交互方式更靈活
- Express 中配置使用 express-session 插件
- 概述案例中注冊-登陸-退出的前后端交互實現(xiàn)流程

## 目標
?

# Node.js 第7天課堂筆記

## 知識點

- 上午
? + 多人社區(qū)案例
? + Express 中間件
- 下午
? + Vue

---

## 反饋

```javascript
funtion extend (source, target) {
? for (var key in source) {
? ? target[key] = source[key]
? }
}

var obj1 = {
? foo: 'bar'
}

var obj2 = {
? name: 'Jack'
}

// obj2 就擁有了 obj1 的所有成員了
extend(obj1, obj2)
```

- ?唉............
- 老師我想問下 那個操作文件路徑不受打開命令執(zhí)行node命令所屬路徑影響什么意思,是可以在任意窗口打開都可以訪問到嗎。。。。。
- 慢點 心急吃不了熱豆腐
- ?老師講的很好 很清晰 希望老師下午第一節(jié)上課時間短點 第一節(jié)很困 上課時間太長聽課效率有點低
- ?老師 寫案例的時候 一個文件的代碼量多了 可不可以把字體稍微調(diào)小點便于看全局結(jié)構(gòu) 有時候感覺自己連不上
- extend還不是很理解
? + 模板繼承
? + extend 把復制過來
? + layout
? + index (extend layout)
? + index 就具有了 layout 的內(nèi)容
? + index 還可以有自己的自定義內(nèi)容
- 能不能把命令系統(tǒng)地羅列一下,@ 0 @
- ?聽得時候都差不多聽懂了,可是自己做的時候發(fā)現(xiàn)不知道從何入手,即使是看著老師的需求與代碼,也根本不懂怎么寫了,感覺自己聽完了就全都忘光了,很郁悶!
- 我現(xiàn)在學習的感覺就像 你是個俄國人,教我了一句外語,你已經(jīng)重復 了很多遍,我也努力再聽,但是當你說完的那一刻,我就完全不知道你說了什么。就是僅僅過了一耳朵,再加上內(nèi)容太多,我已經(jīng)感覺完全跟不上了,怎么辦,我有點崩潰。怎么破
? + 上帝撒了一把智慧,可惜我打了一把傘
? + 多花時間、廢寢忘食
- 老師你是不是喜歡Anglebaby?我同桌問的,她是個女的
? + Angelababy
- 如何在瀏覽器中模擬所謂的art-template高級技術(shù)?關(guān)于瀏覽器操作cookie的插件如何使用,需要注意些什么?還可以安裝一些什么谷歌瀏覽器插件,有助于提高開發(fā)效率或模擬項目、測試的實用插件!
? + 只是一個工具
? + https://github.com/js-cookie/js-cookie
? + EditThisCookie Chrome 瀏覽器插件
- ?文件引入有規(guī)則嗎,像router.js中,需要重新引入第三方模塊express,但是body-parser在routre頁面也使用了呀,但是怎么不用引入
? + ?這主要是中間件的原因
- req.session對象不清楚 希望老師再講講
? + req.session.xxx = xxx
? + req.session.xxx
? + Session 是基于 Cookie 實現(xiàn)的
- session 那塊還是不怎么明白
- ?課間下課盡量要準時,特別是上午第一節(jié)課比較困,聽課效率低,反正下課次數(shù)固定,也不會讓上課時間減少。 下午5點半增加上課時間多多益善
- ?思路有點亂,有些小地方不明確,總的來說練得太少
- mongoose中的Schema用的不熟練
? + 多寫寫
- ?如果先啟動node服務(wù),再開啟數(shù)據(jù)庫,數(shù)據(jù)庫服務(wù)開啟了,但是數(shù)據(jù)庫并沒有連接,這樣會出現(xiàn)所有的操作都會失效的情況,必須打開新的命令行使用mongo命令手動連接數(shù)據(jù)庫 反過來,如果先開啟數(shù)據(jù)庫,再開啟node服務(wù),就不會出現(xiàn)這樣的問題,因為user.js代碼中mongoose.connect('mongodb://localhost/test', { useMongoClient: true })自動連接了數(shù)據(jù)庫,剛開始以為數(shù)據(jù)庫竟然和node產(chǎn)生了依賴,原來并不是! 希望老師控制每節(jié)課的上課時間,一節(jié)課集中精力的時間最多20分鐘,接下來的20分鐘基本只有一半的效率,后面的時間效率只會指數(shù)減小,所以希望老師能在45分鐘左右就休息一次,也能提高效率; 老師講的很細,很認真,也很負責,希望能在最后一個月的時間學好最重要的內(nèi)容,就像你說的,因為剛好遇見你!
? + ?你說的對,加油。
- 一到數(shù)據(jù)庫就蒙。數(shù)據(jù)庫始終連接不上去。我覺得不知道我數(shù)據(jù)庫都學了什么?_?
- nice!

---

## 復習

- path 模塊
- __dirname 和 __filename
? + **動態(tài)的** 獲取當前文件或者文件所處目錄的絕對路徑
? + 用來解決文件操作路勁的相對路徑問題
? + 因為在文件操作中,相對路徑相對于執(zhí)行 `node` 命令所處的目錄
? + 所以為了盡量避免這個問題,都建議文件操作的相對路勁都轉(zhuǎn)為:**動態(tài)的絕對路徑**
? + 方式:`path.join(__dirname, '文件名')`
- art-template 模板引擎(include、block、extend)
? + include
? + extend
? + block
? + 動手寫一寫
- 表單同步提交和異步提交區(qū)別
? + 字符串交互
? + 請求(報文、具有一定格式的字符串)
? + HTTP 就是 Web 中的溝通語言
? + 服務(wù)器響應(yīng)(字符串)
? + 01
? + 服務(wù)器端重定向針對異步請求無效
- Express 中配置使用 express-session 插件
? + 插件也是工具
? + 你只需要明確你的目標就可以了
? + 我們最終的目標就是使用 Session 來幫我們管理一些敏感信息數(shù)據(jù)狀態(tài),例如保存登陸狀態(tài)
? + 寫 Session
? ? * req.session.xxx = xx
? + 讀 Session
? ? * req.session.xxx
? + 刪除 Session
? ? * req.session.xxx = null
? ? * 更嚴謹?shù)淖龇ㄊ?`delete` 語法
? ? * delete req.session.xxx
- 概述案例中注冊-登陸-退出的前后端交互實現(xiàn)流程

---

## 上午總結(jié)

---

## 下午總結(jié)

---

## 總結(jié)

---

## 目標
?

總結(jié)

以上是生活随笔為你收集整理的nodejs笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。