4月3日
使用Node.js開(kāi)發(fā)App的步驟
-
創(chuàng)建項(xiàng)目目錄
mkdir myapp cd myapp # 合并以上兩步驟 mkdir myapp && cd myapp -
初始化
npm init --yes //目的:創(chuàng)建package.json文件,該文件記錄了項(xiàng)目項(xiàng)目信息及項(xiàng)目中所有使用的模塊。 -
創(chuàng)建項(xiàng)目結(jié)構(gòu)
myapp - views - public - routes - package.json - package-lock.json - app.js -
安裝模塊
npm install express -
引入模塊
const express = require('express') -
寫需求
.....
網(wǎng)站根目錄
-
根目錄VS用戶根目錄\ ~ 查看當(dāng)前位置: pwd
項(xiàng)目根目錄:訪問(wèn)權(quán)限設(shè)置為公開(kāi)的、任何人都可以訪問(wèn)的。
public目錄
定義
Public 目錄是Node.js中存放網(wǎng)站靜態(tài)文件的目錄。靜態(tài)文件包括:
- 圖片
- css文件
- js文件
- 字體文件
mkdir public && cd public
mkdir css js images
Public : 公共的、共同的、公開(kāi)
express框架
- 框架的核心是構(gòu)造函數(shù)express()
- Express() 構(gòu)造函數(shù)用于創(chuàng)建一個(gè)APP實(shí)例(服務(wù)器類型的app)
- express是基于Node.js平臺(tái)
- Node.js平臺(tái)是運(yùn)行js文件的。
- Node.js項(xiàng)目目錄
- index.js app.js server.js
- views
- html視圖模版
- ejs視圖引擎
- html視圖模版
- public
- 引入靜態(tài)資源
- 普通項(xiàng)目目錄
- index.html
- css
- style.css
- js
- Script.js
知識(shí)點(diǎn)1:express.static()
定義
語(yǔ)法
返回值
示例
知識(shí)點(diǎn)2:創(chuàng)建數(shù)據(jù)庫(kù)
方案1:創(chuàng)建本地mongodb數(shù)據(jù)庫(kù)
-
啟動(dòng)mongodb數(shù)據(jù)庫(kù)
# window系統(tǒng) 服務(wù) => 右鍵 => 啟動(dòng) # Mac OS brew services start mongodb/brew/mongodb-community -
連接數(shù)據(jù)庫(kù)(怎么和數(shù)據(jù)庫(kù)通信?)
- 可以使用可視化軟件Compass
- 非可視化軟件:mongosh
mongosh "mongodb://localhost:27017"
-
創(chuàng)建數(shù)據(jù)庫(kù): zhangsanblog
使用compass手動(dòng)創(chuàng)建
-
使用mongosh手動(dòng)創(chuàng)建
use zhangsanblog
-
創(chuàng)建數(shù)據(jù)庫(kù)用戶
-
語(yǔ)法
Db.createUser({ user: 'zhangsan', pwd: '123456', roles: [{ role:"readWrite",db:"config"},"clusterAdmin"], roles: ["readWrite"] })
-
方案2:創(chuàng)建云數(shù)據(jù)庫(kù)
- 登錄Atlas賬戶
- 創(chuàng)建數(shù)據(jù)庫(kù) : zhangsanblog
- 創(chuàng)建用戶: zhangsan Zxcvbn123456
知識(shí)點(diǎn)3:連接字符串
定義
連接字符串特指在App開(kāi)發(fā)過(guò)程中連接數(shù)據(jù)庫(kù)的地址。
語(yǔ)法
"協(xié)議://用戶名:密碼@數(shù)據(jù)庫(kù)地址/數(shù)據(jù)庫(kù)名"
云數(shù)據(jù)庫(kù)的連接字符串
從云數(shù)據(jù)庫(kù)復(fù)制的連接字符串:
'mongodb+srv://<username>:<password>@zhangsanblog.4t6hj0s.mongodb.net/?retryWrites=true&w=majority'
用你的用戶名和密碼替換<username>和<password>
'mongodb+srv://zhangsan:Zxcvbn123456@zhangsanblog.4t6hj0s.mongodb.net/?retryWrites=true&w=majority'
本地?cái)?shù)據(jù)庫(kù)的連接字符串
"mongodb://zhangsan:123456@127.0.0.1:27107/zhangsanblog"
"mongodb://zhangsan:123456@localhost:27107/zhangsanblog"
知識(shí)點(diǎn)4:Node和MongoDB的通信
通信方式有兩種:
- Mongodb模塊:
- mongodb模塊是Node.js原生提供的與mongoDB數(shù)據(jù)庫(kù)通信的API。
- Mongoose模塊:
- 是第三方提供的在Node平臺(tái)與MongoDB數(shù)據(jù)庫(kù)通信的方式。
- Mongoose是一個(gè)庫(kù)。
- 庫(kù):就是函數(shù)的集合。
- Mongoose庫(kù)包裹Node API。
知識(shí)點(diǎn)5:使用Mongoose模塊連接數(shù)據(jù)庫(kù)
const mongoose = require('mongoose')
mongoose.connect(uri)
.then((result) => {
console.log('數(shù)據(jù)庫(kù)已經(jīng)連接')
})
.catch( err => console.log(err))
連接數(shù)據(jù)庫(kù)
打開(kāi)app.js文件