2023-04-03

使用Node.js開發(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)目中所有使用的模塊。

3.創(chuàng)建項(xiàng)目結(jié)構(gòu)

myapp
- views
- public
- routes
- package.json
- package-lock.json
- app.js

4.安裝模塊

npm install express

5.引入模塊

const express = require('express')

6.寫需求

·····

public目錄

網(wǎng)站根目錄

1.項(xiàng)目根目錄:訪問權(quán)限設(shè)置為公開的、任何人都可以訪問的焰轻。

public目錄

定義:public目錄是Node.js

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視圖引擎
    - public
  • 普通項(xiàng)目目錄
    - index.html
    - css
    ①style.css
    - js
    ①Script.js

創(chuàng)建數(shù)據(jù)庫(kù)

方案1:創(chuàng)建本地mongoDB數(shù)據(jù)庫(kù)

1.開啟mongoDB數(shù)據(jù)庫(kù)
2.鏈接數(shù)據(jù)庫(kù)
------1.可以使用可視化軟件compass
------2.非可視軟件mongosh


3.創(chuàng)建數(shù)據(jù)庫(kù)名
------1.使用compass手動(dòng)創(chuàng)建
------2.使用mongosh手動(dòng)創(chuàng)建


4.創(chuàng)建數(shù)據(jù)庫(kù)用戶

db.createUser({
  user:'zhangsan',
  pwd:'123456',
  roles:[{role:'readwrite,db:'config'},'clusterAdmin'] =>  roles:['readwrite']
})

方案2:創(chuàng)建云數(shù)據(jù)庫(kù)

1.登入Atlas賬戶
2.創(chuàng)建數(shù)據(jù)庫(kù):lisi
3.創(chuàng)建用戶:賬戶:aicblm 密碼:******

鏈接字符串

定義:鏈接字符串特指在App開發(fā)過程中鏈接數(shù)據(jù)庫(kù)的地址
語法

"協(xié)議://用戶名:密碼@數(shù)據(jù)庫(kù)地址/數(shù)據(jù)庫(kù)名"

云數(shù)據(jù)庫(kù)的鏈接字符串

"mongodb+srv://mtl3389767905:3389767905Ma@lisi.klubhud.mongodb.net/?retryWrites=true&w=majority"

本地?cái)?shù)據(jù)庫(kù)的鏈接字符串

mongodb://lisi:3389767905Ma@127.0.0.1/lisi
mongodb://lisi:3389767905Ma@localhost:27107/lisi

Node和mongoDB的通信

通信方式有兩種:

  • MongoDB模塊:Node.js原生提供的通信方式
    - mongodb模塊是Node.js原生提供的與MongoDB數(shù)據(jù)庫(kù)通信的API扶叉。
  • Mongoose模塊:第三方提供的通信方式
    - 第三方提供的在Node平臺(tái)與MongoDB數(shù)據(jù)庫(kù)通信的方式。
    - Mongoose是一個(gè)函數(shù)庫(kù)接剩。
    - 庫(kù):就是函數(shù)的集合。
    - Mongoose庫(kù)包裹Node API

鏈接數(shù)據(jù)庫(kù)

打開'app,js'文件

mongoose是什么

  • mongoose的核心是monggoose()構(gòu)造函數(shù)
  • mongoose是一個(gè)ODM(對(duì)象事件模型)(Object Data Model)
    - 使用js對(duì)象的語法來映射MongoDB數(shù)據(jù)庫(kù)中的表和document
    ①collection:數(shù)據(jù)庫(kù)

Schema()

  • Schema()是一個(gè)構(gòu)造函數(shù)萨咳。
  • Schema()構(gòu)造函數(shù)用于創(chuàng)建實(shí)例對(duì)象
  • 每一個(gè)schema實(shí)例對(duì)象映射一個(gè)MongoDB數(shù)據(jù)庫(kù)表懊缺。
    - 定義標(biāo)中的document結(jié)構(gòu)
    語法
new Schema(obj,options)
new Schema( {定義數(shù)據(jù)庫(kù)表結(jié)構(gòu)},{選項(xiàng)對(duì)象:描述前面的表} )

返回值:返回schema對(duì)象

實(shí)例:創(chuàng)建一個(gè)schema表,用來存儲(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,
    }
},{})

express.static

定義:配置要暴露的靜態(tài)資源,公開資源
在app.use里用

find()

用來查詢?nèi)績(jī)?nèi)容

findById()

使用id來查詢內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末培他,一起剝皮案震驚了整個(gè)濱河市鹃两,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舀凛,老刑警劉巖俊扳,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異猛遍,居然都是意外死亡馋记,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門懊烤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梯醒,“玉大人,你說我怎么就攤上這事腌紧∪紫埃” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵壁肋,是天一觀的道長(zhǎng)号胚。 經(jīng)常有香客問我代箭,道長(zhǎng),這世上最難降的妖魔是什么涕刚? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任嗡综,我火速辦了婚禮,結(jié)果婚禮上杜漠,老公的妹妹穿的比我還像新娘极景。我一直安慰自己,他們只是感情好驾茴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布盼樟。 她就那樣靜靜地躺著,像睡著了一般锈至。 火紅的嫁衣襯著肌膚如雪晨缴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天峡捡,我揣著相機(jī)與錄音击碗,去河邊找鬼。 笑死们拙,一個(gè)胖子當(dāng)著我的面吹牛稍途,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播砚婆,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼械拍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了装盯?” 一聲冷哼從身側(cè)響起坷虑,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎埂奈,沒想到半個(gè)月后迄损,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挥转,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年海蔽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绑谣。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拗引,靈堂內(nèi)的尸體忽然破棺而出借宵,到底是詐尸還是另有隱情,我是刑警寧澤矾削,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布壤玫,位于F島的核電站豁护,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏欲间。R本人自食惡果不足惜楚里,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望猎贴。 院中可真熱鬧班缎,春花似錦、人聲如沸她渴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趁耗。三九已至沉唠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苛败,已是汗流浹背满葛。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罢屈,地道東北人纱扭。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像儡遮,于是被迫代替她去往敵國(guó)和親乳蛾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 網(wǎng)站根目錄 根目錄是:/ 、\ 用戶根目錄:~ 查看當(dāng)前位置:pwd 項(xiàng)目根目錄:訪問權(quán)限設(shè)置為公開的十嘿、任何人都可...
    爛好人_5b0f閱讀 340評(píng)論 0 1
  • 使用Node.js開發(fā)App的步驟 創(chuàng)建項(xiàng)目目錄mkdir myappcd myapp# 合并以上兩步驟mkdir...
    天天涯閱讀 67評(píng)論 0 0
  • 1 命令行窗口 1.1. 命令行窗口(小黑屏)因惭、CMD窗口、終端绩衷、shell 開始菜單 -> 運(yùn)行 -> cmd ...
    錦衣夜行001閱讀 1,619評(píng)論 0 1
  • 一. 簡(jiǎn)介 1.Node.js是js運(yùn)行在服務(wù)器的一個(gè)平臺(tái)2.Node中蹦魔,每一個(gè)js文件中的代碼都是獨(dú)立運(yùn)行在一個(gè)...
    codingZero閱讀 413評(píng)論 0 0
  • 使用Node.js開發(fā)App的步驟 創(chuàng)建項(xiàng)目目錄mkdir myappcd myapp# 合并以上兩步驟mkdir...
    勞模閱讀 81評(píng)論 0 0