node.js開(kāi)發(fā)App

4月3日

使用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)目信息及項(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. 寫需求

    .....
    

網(wǎng)站根目錄

  1. 根目錄 VS 用戶根目錄

         \                   ~
    
  2. 查看當(dāng)前位置: pwd

  3. 項(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視圖引擎
    • 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ù)

  1. 啟動(dòng)mongodb數(shù)據(jù)庫(kù)

    # window系統(tǒng)
    服務(wù) => 右鍵 => 啟動(dòng)
    # Mac OS
    brew services start mongodb/brew/mongodb-community 
    
  2. 連接數(shù)據(jù)庫(kù)(怎么和數(shù)據(jù)庫(kù)通信?)

    1. 可以使用可視化軟件Compass
    2. 非可視化軟件:mongosh
mongosh "mongodb://localhost:27017"
  1. 創(chuàng)建數(shù)據(jù)庫(kù): zhangsanblog

    1. 使用compass手動(dòng)創(chuàng)建

    2. 使用mongosh手動(dòng)創(chuàng)建

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

    1. 語(yǔ)法

      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ù) : zhangsanblog
  3. 創(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文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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