1、在node中安装一个可以连接mongodb数据库的工具mongoose
安装mongoose命令: npm i mongoose

image.png
2、在server.js中l连接mongodb数据库
2.1、引入mongoose模块: const mongoose = require('mongoose')
2.2、连接mongodb数据库:mongoose.connect('mongodb://localhost:27017/express-test')
//1、引入express模块
const express = require('express');
//2、创建web服务器
const app = express();
// 1、引入mongoose模块
const mongoose = require('mongoose')
// 2、连接mongodb数据库
// 因为装在本地,所以使用localhost或http://127.0.0.1也可以
// mongodb:// 数据库ip地址 :(默认端口号:27017) /数据库名称
// ↓ ↓ ↓ ↓
// 固定格式mongoose.connect('mongodb:// localhost :27017 /express-test')
mongoose.connect('mongodb://localhost:27017/express-test')
// 使用app.use(引入cors包) 因为引入的cors包是一个函数,所以直接调用
app.use(require('cors')())
// 使用app.use托管静态资源,通过express.static('静态资源目录,一般叫public')
// 访问public里面的静态资源一定要通过/static文件夹下才能访问
app.use('/',express.static('public'))
// 3、注册路由
app.get('/product',function(req,res){
res.send([
{id:1,title:'apple'},
{id:2,title:'banner'},
{id:3,title:'lemon'}
])
});
//4、设置端口
app.listen(3000,()=>{
console.log('App listening on port 3000!')//服务器启动后会打印这句话
})
3、启动server.js,发现有两个警告

image.png
4、在server.js中添加两个参数{ useNewUrlParser: true,useUnifiedTopology: true }即可
//1、引入express模块
const express = require('express');
//2、创建web服务器
const app = express();
// 1、引入mongoose模块
const mongoose = require('mongoose')
// 2、连接mongodb数据库
// 因为装在本地,所以使用localhost或http://127.0.0.1也可以
// mongodb:// 数据库ip地址 :(默认端口号:27017) /数据库名称
// ↓ ↓ ↓ ↓
// 固定格式mongoose.connect('mongodb:// localhost :27017 /express-test')
mongoose.connect('mongodb://localhost:27017/express-test',{ useNewUrlParser: true , useUnifiedTopology: true })
// 使用app.use(引入cors包) 因为引入的cors包是一个函数,所以直接调用
app.use(require('cors')())
// 使用app.use托管静态资源,通过express.static('静态资源目录,一般叫public')
// 访问public里面的静态资源一定要通过/static文件夹下才能访问
app.use('/',express.static('public'))
// 3、注册路由
app.get('/product',function(req,res){
res.send([
{id:1,title:'apple'},
{id:2,title:'banner'},
{id:3,title:'lemon'}
])
});
//4、设置端口
app.listen(3000,()=>{
console.log('App listening on port 3000!')//服务器启动后会打印这句话
})
5、再一次启动时已经没有任何警告了

image.png
6、创建一个产品表
6.1、通过mongoose.model建立一个模型来创建一个产品表
// 创建产品表
// 通过mongoose.model建立一个模型,第一个参数为模型的名称 ,第二个参数为表结构
// 通过new mongoose.Schema({title:String})创建一个表结构,里面传递一个对象,对象中写字段/属性(即一个产品中有哪些属性)
const Product = mongoose.model('Product',new mongoose.Schema({
//属性名:属性类型
title:String
}))
6.2、为了测试,就在server.js插入多条数据,服务器启动后就需要把插入语句注释掉,防止多次执行,正常来说数据是从数据库中执行插入的
// 为了测试,通过insertMany向product插入3条数据
// 第一次执行后就已经插入了数据,所以需要注释掉,以免反复插入
Product.insertMany([
{title:'产品1'},
{title:'产品2'},
{title:'产品3'}
])
6.3、当通过http://localhost:3000/product访问时,会去查找Product中的数据
app.get('/product',async function(req,res){
// 每一次的数据库查询都是从node.js服务器里面去异步操作连接mongodb数据库,所以要加await
// 只要使用await,外出的函数就需要添加async,因为await和async是成对使用的
res.send(await Product.find())//通过find查找Product中的信息
});
访问结果:_id是mongodb往数据库存一条信息时会自动添加的一个id; __v是版本号

image.png
server.js整体代码:
//1、引入express模块
const express = require('express');
//2、创建web服务器
const app = express();
// 1、引入mongoose模块
const mongoose = require('mongoose')
// 2、连接mongodb数据库
// 因为装在本地,所以使用localhost或http://127.0.0.1也可以
// mongodb:// 数据库ip地址 :(默认端口号:27017) /数据库名称
// ↓ ↓ ↓ ↓
// 固定格式mongoose.connect('mongodb:// localhost :27017 /express-test')
mongoose.connect('mongodb://localhost:27017/express-test',{ useNewUrlParser: true , useUnifiedTopology: true })
// 创建产品表
// 通过mongoose.model建立一个模型,第一个参数为模型的名称 ,第二个参数为表结构
// 通过new mongoose.Schema({title:String})创建一个表结构,里面传递一个对象,对象中写字段/属性(即一个产品中有哪些属性)
const Product = mongoose.model('Product',new mongoose.Schema({
//属性名:属性类型
title:String
}))
// 为了测试,通过insertMany向product插入3条数据
// 第一次执行后就已经插入了数据,所以需要注释掉,以免反复插入
// Product.insertMany([
// {title:'产品1'},
// {title:'产品2'},
// {title:'产品3'}
// ])
// 使用app.use(引入cors包) 因为引入的cors包是一个函数,所以直接调用
app.use(require('cors')())
// 使用app.use托管静态资源,通过express.static('静态资源目录,一般叫public')
// 访问public里面的静态资源一定要通过/static文件夹下才能访问
app.use('/',express.static('public'))
// 3、注册路由
app.get('/product',async function(req,res){
// 每一次的数据库查询都是从node.js服务器里面去异步操作连接mongodb数据库,所以要加await
// 只要使用await,外出的函数就需要添加async,因为await和async是成对使用的
res.send(await Product.find())//通过find查找Product中的信息
});
//4、设置端口
app.listen(3000,()=>{
console.log('App listening on port 3000!')//服务器启动后会打印这句话
})