美文网首页
node中使用moogodb || express

node中使用moogodb || express

作者: 许___ | 来源:发表于2022-04-17 21:01 被阅读0次

其实我更推荐这篇文章,涵盖了安装,使用,精确语法解释示例等 -- MongoDB下载、安装、配置、使用,如何下载MongoDB数据库,MongoDB入门

1. 使用express创建服务

1.1 下载express
npm i express
npm i cors  // 处理跨域
1.2 创建最基本的服务
const express = require('express')
const app = express()

app.use(require('cors')())
app.use(express.json())
app.use(express.urlencoded({ extended:false }))

app.listen(80,()=>{
    console.log('服务启动成功');
})

2. 使用moogodb并建立连接

2.1 下载mongoose
npm i mongoose
2.2 建立连接并创建数据库与表
const mongoose = require('mongoose')

// 创建与mongoose链接 node-mongoose代表数据库名称
mongoose.connect('mongodb://localhost:27017/node-mongoose', {
  useUnifiedTopology: true,
  useNewUrlParser: true,
})

// 创建一个表,并定义表Product,定义表字段title与字段类型
const Product = mongoose.model('Product',new mongoose.Schema({
  title: String,
}))

3 使用moogodb进行最基本的删查改写

// 查询
app.get('/products',async (req, res) => {
  // limit 限制查询条数 skip 从第一天跳过几条数据 where查询条件 sort代表排序 1为正序 -1倒叙
  // const data = await Product.find().skip(1).limit(1)
  // const data = await Product.find().where({title: '0'})
  const data = await Product.find().sort({_id: 1})
  res.send( data )
})

// 新增
// 注意  传递表中不存在的数据会导致插入输入的失败
app.post('/products',async (req, res)=>{
  console.log(req.body);
  const body = req.body
  const products = await Product.create(body)
  res.send( products )
})

// 根据id修改数据
app.put('/products/:id',async (req, res) => {
  console.log(req);
  const products = await Product.findById(req.params.id)
  products.title = req.body.title
  // 保存数据
  await products.save()
  res.send(products)
})

// 根据id删除数据
app.delete('/products/:id',async (req, res) => {
  console.log(111,req.params.id);
  const products = await Product.findById(req.params.id)
  // 删除数据
  await products.remove()
  res.send({
    success: true,
  })
})

4. 完整代码

const express = require('express')
const app = express()
const mongoose = require('mongoose')

app.use(require('cors')())
app.use(express.json())
app.use(express.urlencoded({ extended:false }))
// 创建与mongoose链接 node-mongoose代表数据库名称
mongoose.connect('mongodb://localhost:27017/node-mongoose', {
  useUnifiedTopology: true,
  useNewUrlParser: true,
})
// 创建一个表,并定义表Product,定义表字段title与字段类型
const Product = mongoose.model('Product',new mongoose.Schema({
  title: String,
}))

app.get('/products',async (req, res) => {
  // limit 限制查询条数 skip 从第一天跳过几条数据 where查询条件 sort代表排序 1为正序 -1倒叙
  // const data = await Product.find().skip(1).limit(1)
  // const data = await Product.find().where({title: '0'})
  const data = await Product.find().sort({_id: 1})
  res.send( data )
})

// 注意  传递表中不存在的数据会导致插入输入的失败
app.post('/products',async (req, res)=>{
  console.log(req.body);
  const body = req.body
  // select *form user where 
  const products = await Product.create(body)
  res.send( products )
})

app.put('/products/:id',async (req, res) => {
  console.log(req);
  const products = await Product.findById(req.params.id)
  products.title = req.body.title
  // 保存数据
  await products.save()
  res.send(products)
})
app.delete('/products/:id',async (req, res) => {
  console.log(111,req.params.id);
  const products = await Product.findById(req.params.id)
  // 删除数据
  await products.remove()
  res.send({
    success: true,
  })
})

app.listen(80,()=>{
   console.log('服务启动成功');
})

相关文章

网友评论

      本文标题:node中使用moogodb || express

      本文链接:https://www.haomeiwen.com/subject/myhfkrtx.html