4.10~4.15

張三的博客項目總結(jié)

請問項目用到了哪些技術(shù)?

  • Node.js

  • Modules

  • CommonJS的模塊化

  • ECMAScript Module

  • Expresss()框架

  • MongoDB數(shù)據(jù)庫

  • Mongoose庫

  • Schema()

  • Model()

  • MVC:APP的設(shè)計模式/思想

    • Model:模型(數(shù)據(jù))

    • View:視圖

    • Controller:控制器

  • BootStrap:構(gòu)建布局

  • EJS:視圖模版

  • NPM VS NPX

    • Npm : Node.js的軟件包管理器(Node.js Package Manager )

    • NPX: Node.js的軟件包執(zhí)行器 (Node.js Package Executor)

express Generator

定義:
express Generator是快速生成Express APP的腳手架。

Node.js APP 的開發(fā)步驟
第1步:項目初始化
創(chuàng)建package.json文件(模塊包,管理項目用到模板)

mkdir myApp 
cd myApp
npm init --yes
npm init -y第2步. 創(chuàng)建項目目錄結(jié)構(gòu)

myApp

  • models:存放數(shù)據(jù)模型模塊 module.exports = Blog

  • views: 存放ejs視圖文件

  • controllers: 存放控制器:處理請求的回調(diào)

  • routes: 存放路由表

  • public: 存放靜態(tài)資源(圖片、css、js、字體)

  • app.js: 主文件(App入口)

  • package.json: 描述App(app的名字、描述、關(guān)鍵字、版本、第三方依賴)第3步:安裝項目所需模塊 一鍵安裝npm i express mongoose ejs express-ejs-layouts

    • express
    • mongoose
    • ejs
    • express-ejs-layouts

第4步:引入模塊(注意順序引入)

  • 用戶界面
  • node.js
  • 內(nèi)置模板
    • path:用于處理(拼接)路徑段;
    • fs:用于處理文件系統(tǒng);
    • http:用于創(chuàng)建服務(wù)器;
  • 第三方模板
    • express: 構(gòu)建node.js APP;
    • mongoose: 與mongoDB通信;
    • Ejs:創(chuàng)建視圖;嵌入式Javasript的hitml模板 -<% %>:注入動態(tài)數(shù)據(jù)(變量、對象名、函數(shù)名、語句)
    • nodemon:開發(fā)?
    • express--ejs-layouts:用于構(gòu)建視圖的模板;

第一步:安裝npm install ejs???
本地模塊
Model: 如: Blog數(shù)據(jù)模型
模塊化 html沒有模塊的概念
css使用@import導(dǎo)入css模塊
不要把所以的css都寫在一個文件里
謹(jǐn)慎使用@import 規(guī)則(1.必須放在css文件首行 2.注意:不要引入字體)
@import會發(fā)起請求
ES 6使用 import 和export導(dǎo)入模塊
第5步:創(chuàng)建app.js的基本結(jié)構(gòu)

 App.js
//引入模塊
const express=require('express')
//實例化App
const app = express() 
//配置app實例
app.use('',callback) //為指定路徑注冊回調(diào)函數(shù)
app.set(key, value) //設(shè)置一個值,為以后調(diào)用
//連接數(shù)據(jù)庫
const uri = ''
mongoose.connect(uri)
        .then()
        .catch()
//配置路由網(wǎng)站的基本·原理
搭建一個網(wǎng)站,需要做的三件事:
買一個域名:域名是ip地址的別名。域名管理面板下設(shè)置
域名解析:把ip地址綁定到域名上;
買一個服務(wù)器:
每個服務(wù)器都是一個ip地址。
ip地址綁定一個域名。
編寫一套程序: -靜態(tài)網(wǎng)頁語言:HTMl css
動態(tài)網(wǎng)頁語言:index.pjp 、 index.jsp、 index.asp、 
默認(rèn)頁:index.html index.thm index.php
網(wǎng)站工作原理
網(wǎng)站分為兩種: 靜態(tài)網(wǎng)站:沒有用到數(shù)據(jù)庫,我的數(shù)據(jù)寫死html頁面里;
html 不支持變量 動態(tài)網(wǎng)站:數(shù)據(jù)從數(shù)據(jù)里注入到頁面里;

<%- body %> : 寫了<%- body %>就相當(dāng)于在其他文件里寫在body下的內(nèi)容都可以在這里接收到
<%- %>:輸出標(biāo)簽
<%= %>:輸出字符串

// Task模型定義了許多和數(shù)據(jù)庫通信的方法:
// Task.find() 查詢?nèi)繑?shù)據(jù)
// Task.findById() 查詢指定ID的數(shù)據(jù)
// Task.save() 存儲數(shù)據(jù)
// Task.findByIdAndDlete() 根據(jù)指定ID刪除數(shù)據(jù)
// Task.findByIdAndUpdate() 根據(jù)指定ID修改數(shù)據(jù)

請談?wù)勀銓xpress的認(rèn)識?

  • 是什么
  • 基于Node.js平臺的框架
  • 組成部分
  • Express()構(gòu)造函數(shù)
  • app實例對象
  • req請求對象
  • res響應(yīng)對象
  • router對象(路由對象)
  • 用途
  • 用于創(chuàng)建一個基于Node.js的應(yīng)用程序(APP)
  • 主要用途:處理請求和響應(yīng)
  • 工作原理
  • 通過( router )建立( views(視圖) )和( mdel(數(shù)據(jù)) )之間的通信
  • 請求方式
    • < from >表單只能發(fā)起兩種請求
    • GET請求:獲取數(shù)據(jù)的請求
    • POST請求:添加數(shù)據(jù)的請求
    • 發(fā)起delete請求
    • 方法1.通過href發(fā)起一個GET請求,在服務(wù)端拿到id,根據(jù)id刪除數(shù)據(jù)
    • 方式2:使用Fetch API發(fā)起delete請求
      語法
    //注意:必須從瀏覽器端發(fā)起fetch請求
    fetch('請求地址',{選項對象})
    fetch('請求地址',{
        method: "DELETE"
    })在服務(wù)端處理請求
    router.delete('請求地址',(req,res) => {
        
    })
    發(fā)起put請求
    

1.什么是session
session指HTTP客戶端和服務(wù)端的會話。(瀏覽器 <==> 服務(wù)器)
2.Session的用途
①HTTP是無狀態(tài)的 ②session用于處理HTTP通信狀態(tài)問題
3.session和cookkie的區(qū)別
①session存儲在服務(wù)器的內(nèi)存里,cookie存儲在客戶端的瀏覽器里
②瀏覽器端的cookie是通過服務(wù)端的session創(chuàng)建的
4.在服務(wù)器創(chuàng)建session的語法

app.use(session({
     secret:'任意字符串',//secret:用于創(chuàng)sessionID(秘鑰),sessionID存儲在瀏覽器的cookie里      
     cookie:{
         maxAge:毫秒數(shù),//maxAge決定了cookie的有效期
       },
     resave:布爾值,//當(dāng)session發(fā)生變化是是否需要重新存儲。建議flase
     saveUninitialized:布爾值//如果未完成初始化是否創(chuàng)建session,建議true
 }))

5.express-session模塊如何創(chuàng)建cookie?
app.use(session({})) 創(chuàng)建一個session對象,cookie是通過session對象創(chuàng)建的
6.記住一句話
①在服務(wù)器端創(chuàng)建session,就在瀏覽器植入了一個cookie
②瀏覽器端的cookie只存儲sessionID,不存儲任何其他數(shù)據(jù)
③sessionID是通過secret屬性生成一個加密的隨機(jī)的唯一的ID
④只要cookie植入完成,瀏覽器端發(fā)起的任何請求都會自動攜帶sessionID
7.所有的中間件函數(shù)都必須執(zhí)行next()函數(shù):跳轉(zhuǎn)到下一個中間件函數(shù)
8.req.session的用途是什么?
req.session用于向服務(wù)端的Session對象添加額外信息

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • node.js 介紹 node.js是什么 node.js 是一個開發(fā)平臺,就像java開發(fā)平臺...何為開發(fā)平臺...
    小淺_閱讀 1,260評論 0 6
  • NodeJs簡介 V8引擎本身就是用于chrome瀏覽器的JS部分,但是Ryan Dahe 這哥們,鬼才般的,把這...
    Geeker工作坊閱讀 1,384評論 1 1
  • koa2框架筆記 Node.js是一一個異步的世界,官方API支持的都是callback 形式的異步編程模型,這會...
    wanminglei閱讀 690評論 0 0
  • koa2框架筆記 Node.js是一一個異步的世界,官方API支持的都是callback 形式的異步編程模型,這會...
    wanminglei閱讀 1,966評論 0 2
  • Twitch 商城網(wǎng)站 介紹: 1、Node.js搭建的網(wǎng)站,采用Mongodb數(shù)據(jù)庫2、后臺框架 借用了 exp...
    Junting閱讀 1,029評論 0 0

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