使用Node.js开发APP的步骤
1.创建项目目录
mkdir myapp
cd myapp
合并以上两步骤
mkdir myapp && cd myapp
2.初始化
npm init --yes //目的:为了创建package.json文件,该文件记录了项目中所有使用的模块。
3.创建项目结构
myapp
- views
- public
- routes
- package.json
- package-lock.json
- app.js
4.安装模块
npm install express
5.引入模块
const express = require('express')
6.写需求
·····
public目录
网站根目录
1.项目根目录:访问权限设置为公开的、任何人都可以访问的。
public目录
定义:public目录是Node.js
express框架
- 框架的核心是构造函数express()
- Express()构造函数用于创建一个APP实例(服务器类型的app)
- express是基于Node.js平台。
- Node.js平台是运行js文件的。
- Node.js项目目录
- index.js app.js server.js
- views
①html视图模板
②ejs视图引擎
- public
① - 普通项目目录
- index.html
- css
①style.css
- js
①Script.js
创建数据库
方案1:创建本地mongoDB数据库
1.开启mongoDB数据库
2.链接数据库
------1.可以使用可视化软件compass
------2.非可视软件mongosh
3.创建数据库名
------1.使用compass手动创建
------2.使用mongosh手动创建
4.创建数据库用户
db.createUser({
user:'zhangsan',
pwd:'123456',
roles:[{role:'readwrite,db:'config'},'clusterAdmin'] => roles:['readwrite']
})
方案2:创建云数据库
1.登入Atlas账户
2.创建数据库:lisi
3.创建用户:账户:aicblm 密码:******
链接字符串
定义:链接字符串特指在App开发过程中链接数据库的地址
语法
"协议://用户名:密码@数据库地址/数据库名"
云数据库的链接字符串
"mongodb+srv://mtl3389767905:3389767905Ma@lisi.klubhud.mongodb.net/?retryWrites=true&w=majority"
本地数据库的链接字符串
mongodb://lisi:3389767905Ma@127.0.0.1/lisi
mongodb://lisi:3389767905Ma@localhost:27107/lisi
Node和mongoDB的通信
通信方式有两种:
- MongoDB模块:Node.js原生提供的通信方式
- mongodb模块是Node.js原生提供的与MongoDB数据库通信的API。 - Mongoose模块:第三方提供的通信方式
- 第三方提供的在Node平台与MongoDB数据库通信的方式。
- Mongoose是一个函数库。
- 库:就是函数的集合。
- Mongoose库包裹Node API
链接数据库
打开'app,js'文件
mongoose是什么
- mongoose的核心是monggoose()构造函数
- mongoose是一个ODM(对象事件模型)(Object Data Model)
- 使用js对象的语法来映射MongoDB数据库中的表和document
①collection:数据库
②
Schema()
- Schema()是一个构造函数。
- Schema()构造函数用于创建实例对象
- 每一个schema实例对象映射一个MongoDB数据库表。
- 定义标中的document结构
语法
new Schema(obj,options)
new Schema( {定义数据库表结构},{选项对象:描述前面的表} )
返回值:返回schema对象
实例:创建一个schema表,用来存储博客的文章
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
定义:配置要暴露的静态资源,公开资源
在app.use里用
find()
用来查询全部内容
findById()
使用id来查询内容