安装依赖
npm install mongoose
npm install express
删除一条数据:传入id
Model.remove({ _id: 传入的id });
删除多条数据,传入id数组,使用$in方法
Model.remove({ _id: { $in: [‘aID’, ‘bID’] } });
同理,mongoose多个id同时查询,把方法名换为find即可
传入一个id查询一条数据:
Model.find({ _id: 传入的id });
传入多个id,查询多条数据,传入id数组,使用$in方法
Model.find({ _id: { $in: [‘aID’, ‘bID’] } });
// 引入express
const express = require('express');
// mongoose
const mongoose = reqire('mongoose');
const app = express()
// 处理post请求
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
//跨域处理
app.use((req, res, next) => {
res.set('Access-Control-Allow-Origin', '*')
res.set('Access-Control-Allow-Headers', 'content-type')
next()
})
// mongoose 连接 v2_demo是数据库的名字 你可以设置成自己需要的名字 例如:hello abcd 等
mongoose.connect('mongodb://127.0.0.1:27017/v2_demo', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => {
console.log('数据库链接成功')
}).catch(() => {
console.log('数据库链接失败')
})
// 创建一个表结构
var Schema = mongoose.Schema;
var NewSchema = new Schema({
title: { type: String, required: true }, // 标题
abstract: String,// 摘要
content: String,
imgUrl: String,
create_time: { type: Number, default: Date.now()}
});
// new 是表的名称 mongodb 会生成一张 news 的表(末尾会自动加s)
// 下面 基于 New 来操作数据库
var News = mongoose.model('new', NewSchema);
// 查询
// findOne 查询一条数据 find 查询所有数据
// 这两个方法 可以传两个参数 一个参数是查询的条件 第二参数是回调函数
app.post('/newList', async (req, res) => {
let pageNum = req.body.pageNum || 1
let pageSize = req.body.pageSize || 10
const total = await News.find()
// 分页查询 skip 忽略的条数 limit 每页查询的条数
const list = await News.find().skip(pageSize * ( pageNum - 1 ) ).limit(pageSize)
res.send( utils.toast({list, total}) )
})
// 新增
// save 方法 重新 new 一个实例 然后调用save()存进表里面
// 资讯新增
app.post('/newAdd', async (req, res) => {
let { title, abstract, content, imgUrl } = req.body
const news = new News({
title,
abstract,
content,
imgUrl
})
await news.save().then(ress => {
console.log(ress)
})
// res.send({ code: 1, msg: '新增成功', data: {} })
res.send( utils.toast() )
})
// 删除
// remove 删除多条
// deleteOne 删除一条
// 资讯列表 删除
app.post('/newListDelete', (req, res) => {
let id = req.body.id
// 查找并删除
// let result = await News.findByIdAndRemove(id);
// console.log(result)
// if(result) {
// res.send( utils.toast() ); return
// }
// res.send( utils.toast(0, '失败') )
// 封装函数 进行返回
// utils.newDelete(id, res)
// 使用 $in 进行多条数据的查询 或删除
// News.remove( { _id: { $in: ['60bdc7f0a6e47e0bd07230e7', '60bdc6c0a6e47e0bd07230e6'] } } , function (err) {
News.remove({ _id: id }, function (err) {
if(!err) {
res.send( {code: 1, msg: 'success', data: {} } )
} else {
res.send( {code: 0, msg: 'fail', data: {} } )
}
});
})
// 资讯列表 修改
app.post('/newListChange', (req, res) => {
let id = req.body.id
let title = '标题1688'
let abstract = '摘要1688'
// 三个参数 第一个 查找的条件 || 第二个 需要修改的属性 || 第三个 回调函数 看是否有错误
News.updateOne({_id: id}, {title, abstract}, function(err) {
if(err) {
console.log(err)
res.send(err); return
}
res.send({code: 1, msg: '修改成功', data: {}})
})
})