使用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")
-
写需求
......
网站根目录
根目录 \ VS 用户根目录~
查看当前目录:pwd
项目根目录:访问权限设置为公开、任何人都可以访问的
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视图模版
- ejs视图引擎
- html视图模版
- public
- 引入静态资源
-
普通项目目录
- index.html
- css
- style.css
- js
- Script.js
知识点1:express.static()
定义
配置要公开暴露的静态资源
语法
express. static(_ dirname +'/public')
返回值
示例
app.use(express.static(path.join(__dirname,"public")));
知识点2:创建数据库
方案一:创建本地mongoDB数据库
-
启动mongodb数据库
# 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"] })
-
方案二:创建云数据库
登录Atlas账户
创建数据库:greenblong
创建用户:ge Htow123456
知识点3:连接字符串
定义
连接字符串特指在App开发过程中连接数据库的地址
语法
"协议://用户名:密码@数据库地址/数据库名"
云数据库复制的连接字符串
从云数据库复制的连接字符串:
mongodb+srv://ge:<password>@greenblong.7xfolev.mongodb.net/?retryWrites=true&w=majority
用你的用户名和密码替换<username>和<password>
mongodb+srv://ge:Htow123456@greenblong.7xfolev.mongodb.net/?retryWrites=true&w=majority
本地数据库的连接
"mongodb://ge:Htow123456@127.0.0.1:27107/greenblong"
"mongodb://ge:Htow123456@localhost:27107/greenblong"
知识点4:Node和MongoDB的通信
通信方式有两种:
- Mongodb模块:
- mongodb模块是Node.js原生提供的与mongoDB数据库通信的API。
- Mongoose模块:
是第三方提供的在Node平台与MongoDB数据库通信的方式。
Mongoose是一个库。
库:就是函数的集合。
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
collection:数据库中的表。
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
}
},{})