網(wǎng)站根目錄
- 根目錄是:/ 塞绿、\
- 用戶(hù)根目錄:~
- 查看當(dāng)前位置:pwd
- 項(xiàng)目根目錄:訪(fǎng)問(wèn)權(quán)限設(shè)置為公開(kāi)的枕赵、任何人都可以訪(fǎng)問(wèn)的
public目錄
定義:
- Public目錄是Node.js中存放網(wǎng)站靜態(tài)文件的目錄
express框架
- 框架的核心是構(gòu)造函數(shù)express()
- Express()構(gòu)造函數(shù)用于創(chuàng)建一個(gè)APP實(shí)例(服務(wù)器類(lèi)型的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
創(chuàng)建數(shù)據(jù)庫(kù)
一.創(chuàng)建本地mongodb數(shù)據(jù)庫(kù)
- 1.啟動(dòng)mongodb數(shù)據(jù)庫(kù)
# window系統(tǒng)
服務(wù) => 右鍵 => 啟動(dòng)
# Mac OS
brew services start
- 2.連接數(shù)據(jù)庫(kù)(怎么和數(shù)據(jù)庫(kù)通信?)
- 1.可以使用可視化軟件Compass
- 2.非可視化軟件:mongosh
mongosh "mongodb://localhost:27017"
- 3.創(chuàng)建數(shù)據(jù)庫(kù)名:lanhaor
- 1.使用compass手動(dòng)創(chuàng)建
- 2.使用mongosh手動(dòng)創(chuàng)建
use lanhaor
- 4.創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)
語(yǔ)法:
Db.createUser({
user: 'lanhaor',
pwd: '12345678'
roles:[{role:"readWrite",db:"config"},"clusterAdmin"],
roles:["readWrite"]
})
二.創(chuàng)建云數(shù)據(jù)庫(kù)
- 1.登錄Atlas賬戶(hù)
- 2.創(chuàng)建數(shù)據(jù)庫(kù):lanhaor
- 3.創(chuàng)建用戶(hù):lanhaor zxcvbnm123
三.連接字符串
1.連接字符串
定義:
- 連接字符串特點(diǎn)指在APP開(kāi)發(fā)過(guò)程中連接數(shù)據(jù)庫(kù)的地址
語(yǔ)法:
"協(xié)議://用戶(hù)名:密碼@數(shù)據(jù)庫(kù)地址/數(shù)據(jù)庫(kù)名"
2.云數(shù)據(jù)庫(kù)的連接字符串
從云數(shù)據(jù)庫(kù)復(fù)雜的連接字符串
mongodb+srv://<username>:<password>@lanhaor.aarqwne.mongodb.net/?retryWrites=true&w=majority
用你的用戶(hù)名和密碼替換<username>:<password>
'mongodb+srv://lanhaor:zxcvbnm123@lanhaor.aarqwne.mongodb.net/?retryWrites=true&w=majority'
3.本地?cái)?shù)據(jù)庫(kù)的連接字符串
"mongodb://lanhaor:12345678@127.0.0.1:27107/lanhaor"
"mongodb://lanhaor:12345678@localhost:27107/lanhaor"
四.Node和MongoDB的通信
- 通信方式有兩種:
- 1.Mongodb模塊:
- mongodb模塊是Node.js原生提供的與mongoDB數(shù)據(jù)庫(kù)通信的API位隶。
- 2.Mongoose模塊:
- 是第三方提供的在Node平臺(tái)與MongoDB數(shù)據(jù)庫(kù)通信方式拷窜。
- Mongoose是一個(gè)函數(shù)庫(kù)。
- 庫(kù):就是函數(shù)的集合涧黄。
- Mongoose庫(kù)包裹Node API
- 1.Mongodb模塊:
五.連接數(shù)據(jù)庫(kù)
- 打開(kāi)app.js文件
mongoose是什么篮昧?
- mongoose的核心是mongoose()構(gòu)造函數(shù)
- mongoose是一個(gè)對(duì)象數(shù)據(jù)模型。(Object Data Model)
- 使用JS對(duì)象的語(yǔ)法來(lái)映射MongoDB數(shù)據(jù)庫(kù)中的表和document
- collection:數(shù)據(jù)庫(kù)中的表笋妥。
- Document:表中的一條記錄
- 使用JS對(duì)象的語(yǔ)法來(lái)映射MongoDB數(shù)據(jù)庫(kù)中的表和document
Schema()
定義:
- Schema()是一個(gè)構(gòu)造函數(shù)懊昨。
- Schema()構(gòu)造函數(shù)用于創(chuàng)建實(shí)例對(duì)象。
- 每一個(gè)
schema
實(shí)例對(duì)象映射一個(gè)MongoDB數(shù)據(jù)庫(kù)表春宣。- 定義表中的document結(jié)構(gòu)
語(yǔ)法:
new Schema(obj,options)
new Schema(定義數(shù)據(jù)庫(kù)表結(jié)構(gòu),{選項(xiàng)對(duì)象:描述前面的表})
返回值:
- 返回schema對(duì)象
實(shí)例:創(chuàng)建一個(gè)blogschema表酵颁,用來(lái)存儲(chǔ)博客的文章
const blogSchema = new Schema({
title:{
type:String,
required:true
},
author:{
type:String,
required:true
},
snippet:{
type:String,
required:true
},
body:{
type:String,
required:true
}
},{})
Node.js
使用Node.js開(kāi)發(fā)App的步驟。
- 1.創(chuàng)建項(xiàng)目目錄
mkdir myapp
cd myapp
//合并以上兩步驟
mkdir myapp && cd myapp
- 2.初始化
npm init --yes //目的:創(chuàng)建package.json文件月帝,該文件記錄了項(xiàng)目信息及項(xiàng)目中所有使用的模塊躏惋。
- 3.創(chuàng)建項(xiàng)目結(jié)構(gòu)
myapp
- app.js //文件
- views //文件夾 放html、ejs文件
- public
- routes //路由
- package.json //文件
- package-lock.json //文件
- 4.安裝模塊
npm install express
- 5.引入模塊
# 打開(kāi)app.js 輸入
const express = require('express')
總結(jié):
1.mongoose是什么嚷辅?
- mongoose的核心是mongoose()構(gòu)造函數(shù)
- mongoose是一個(gè)對(duì)象數(shù)據(jù)模型簿姨。
2.Schema()
- Schema()是一個(gè)構(gòu)造函數(shù)。
- Schema()構(gòu)造函數(shù)用于創(chuàng)建實(shí)例對(duì)象簸搞。
- 每一個(gè)schema實(shí)例對(duì)象映射一個(gè)MongoDB數(shù)據(jù)庫(kù)表扁位。
3.創(chuàng)建本地mongodb數(shù)據(jù)庫(kù)
- 1.啟動(dòng)mongodb數(shù)據(jù)庫(kù)
- 2.連接數(shù)據(jù)庫(kù)
- 3.創(chuàng)建數(shù)據(jù)庫(kù)名
- 創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)
創(chuàng)建云數(shù)據(jù)庫(kù)
- 1.登錄Atlas賬戶(hù)
- 2.創(chuàng)建數(shù)據(jù)庫(kù):lanhaor
- 3.創(chuàng)建用戶(hù):lanhaor zxcvbnm123
1.連接字符串
- 連接字符串特點(diǎn)指在APP開(kāi)發(fā)過(guò)程中連接數(shù)據(jù)庫(kù)的地址
"協(xié)議://用戶(hù)名:密碼@數(shù)據(jù)庫(kù)地址/數(shù)據(jù)庫(kù)名"
2.云數(shù)據(jù)庫(kù)的連接字符串
從云數(shù)據(jù)庫(kù)復(fù)雜的連接字符串
mongodb+srv://<username>:<password>@lanhaor.aarqwne.mongodb.net/?retryWrites=true&w=majority
用你的用戶(hù)名和密碼替換<username>:<password>
'mongodb+srv://lanhaor:zxcvbnm123@lanhaor.aarqwne.mongodb.net/?retryWrites=true&w=majority'
3.本地?cái)?shù)據(jù)庫(kù)的連接字符串
"mongodb://lanhaor:12345678@127.0.0.1:27107/lanhaor"
"mongodb://lanhaor:12345678@localhost:27107/lanhaor"
Node和MongoDB的通信
通信方式有兩種:
- 1.Mongodb模塊:
- mongodb模塊是Node.js原生提供的與mongoDB數(shù)據(jù)庫(kù)通信的API。
- 2.Mongoose模塊:
- 是第三方提供的在Node平臺(tái)與MongoDB數(shù)據(jù)庫(kù)通信方式趁俊。
- Mongoose是一個(gè)函數(shù)庫(kù)域仇。
- 庫(kù):就是函數(shù)的集合。
- Mongoose庫(kù)包裹Node API
網(wǎng)站根目錄
- 根目錄是:/ 寺擂、\
- 用戶(hù)根目錄:~
- 查看當(dāng)前位置:pwd
- 項(xiàng)目根目錄:訪(fǎng)問(wèn)權(quán)限設(shè)置為公開(kāi)的暇务、任何人都可以訪(fǎng)問(wèn)的
public目錄
- Public目錄是Node.js中存放網(wǎng)站靜態(tài)文件的目錄