使用Node.js开发APP的步骤
-
创建项目目录
mkdir myapp cd myapp # 合并以上两步骤 mkdir myapp && cd myapp
-
初始化
npm init --yes # 目的:创建package.json文件,该文件记录了项目信息及项目中所有使用的模块
-
创建项目结构
myapp - views - public - routes - package.json - package-lock.json - app.js
-
安装模块
npm install express
-
引入模块
const express = require('express')
-
写需求
……
网站目录
1.根目录
VS 用户根目录
`/` `~`
2.查看当前位置:pwd
3.项目根目录:访问权限设置为公开的、任何人都可以访问的
public目录
定义:public目录是Node.js中存放网站静态文件的目录。静态文件包括:
- 图片
- css文件
- js文件
- 字体文件
mkdir public && cd public
mkdir css js images
Public:公共的、共同的
express框架
- 框架的核心是构造函数express()
- Express()构造函数用于创建一个APP实例(服务器类型的app)
- express是基于node.js平台
- Node.js平台是运行js文件的
- Node.js项目目录
- index.js app.js server.js
- views
- html视图模板
- erjs视图引擎
- public
- 引入静态资源
- 普通项目目录
- index.html
- css
- style.css
- js
- script.js
知识点1:express.static()
定义:
语法:
返回值:
示例:
知识点2:创建数据库
方案1:创建本地mongdb数据库
1.开启mongdb数据库
# window系统
服务 => 软件 => 启动
# Mac OS
brew services start mongodb/brew/mongodb-community
连接数据库(怎么和数据库通信?)
可以使用可视化软件Compass
-
非可视化软件:mongosh
mongosh "mongodb://localhost:27017"
-
创建数据库: zhangsanblog
使用compass手动创建
-
使用mongosh手动创建
use zhangsanblog
-
创建数据库用户
-
语法
Db.createUser({ user: 'zhangsan', pwd: '123456', roles: [{ role:"readWrite",db:"config"},"clusterAdmin"], roles: ["readWrite"] })
-
-
方案2:创建云数据库
- 登录Atlas账户
- 创建数据库:zhangsanblog
- 创建用户:laoba tl050426
知识点3:连接数据库
连接字符串
定义:连接字符串特指在App开发过程中连接数据库的地址
语法:
"协议://用户名:密码@数据库地址/数据库名"
云数据库的连接字符串
从云数据库复制的连接字符串
mongodb+srv://<username>:<password>@laoba.w0zxwhb.mongodb.net/?retryWrites=true&w=majority
用你的用户名和密码替换<username>和<password>
mongodb+srv://laoba:tl050426@laoba.w0zxwhb.mongodb.net/?retryWrites=true&w=majority
本地数据库的连接字符串
"mongodb://laoba:tl050426@127.0.0.1:27107/laoba"
"mongodb://laoba:tl050426@localhost:27107/laoba"
知识点4:Node 和 MongoDB的通信
通信方式有两种:
- MongoDB模块:
- mongodb模块是Node.js原生提供的与mongodb数据库通信的API
- MongoDB模块:
- 是第三方提供的Node平台与MongoDB数据库通信的方式
- MongoDB是 一个库
- 库:就是函数的集合
- Mongoose库包裹Node API
知识点5:使用Mongoose模块连接数据库
const mongoose = require('mongoose')
mongoose.connect(uri)
.then((result) => {
console.log('数据库已经连接')
})
.catch( err => console.log(err))
mongoose是什么
- mongoose的核心是mongoose()构造函数
- mongoose是一个ODM(对象数据模型)。(Object Data Model)
-
使用JS对象的语法来映射MongoDB数据库中的表和document
-
Schema()
- Schema()是一个构造函数
- Schema()构造函数用于创建实例对象
- 每一个
schema
实例对象映射一个MongoDB数据库表- 定义表中的document结构
语法:
new Schema(obj,options)
new Schema(({定义数据库表结构}),{选项对象:描述前面的表})
返回值:
返回schema对象
示例:创建一个blogSchema表,用来存储博客的文章
const blogSchema = new Schema({
title:{
type: String,
required: true
},
author:{
type: String,
required: true
},
snippet: {
type: String,
required: true
},
body:{
type: String,
required: true
}
},{})