【React.js|【React.js 04】Express配合MonogoDB使用
安装好了Express
和MonogoDB
之后,如何把他们配合起来使用呢,这里就需要用到mongoose
了。本文紧接着【React.js 01】React脚手架,文章写得,项目根目录也是在对应的脚手架创建的项目目录中。
- 安装
npm install mongoose --save
即可。
- 连接
server
目录下去修改server.js
文件,新增如下内容://引入mongoose
const mongoose = require('mongoose')//连接mongo
const DB_URL = 'mongodb://127.0.0.1:27017'
mongoose.connect(DB_URL)
mongoose.connection.on('connected',()=>{console.log('mongo connect success');
})
依次启动
MonogoDB
和Express
。这时候你就会看到启动
Express
的终端会提示mongo connect success
。文章图片
连接成功
- 定义文档类型
//类似定义了一张表
const User = mongoose.model('user',new mongoose.Schema({
name:{type:String,require:true},//user字段,类型String,是否必须
age:{type:Number,require:true}
}))
新增数据:
User.create({
name:'Kate',
age:18
},(err,doc)=>{
console.log(err ? err : doc);
})
成功后即可看到
Express
终端提示:{ _id: 5abdd0adc97f318357ec2da8, name: 'Kate', age: 18, __v: 0 }
查询数据:
app.get('/data',(req,res)=>{
//查询数据
User.find({},(err,doc)=>{
res.json(doc)
})
})
在浏览器地址栏输入
http://localhost:9093/data
就可以看到:文章图片
返回的内容
就代表我们查找成功了。
当然,你也可以在
find()
函数的第一个参数写入查询条件:
app.get('/data',(req,res)=>{
//带条件查询数据
User.find({name:'Mike'},(err,doc)=>{
res.json(doc)
})
})
但是这时候你会发现,虽然只有一条数据,但是JSON的格式依旧是套着数组的,所以,也有不套数组外壳的方法
findOne()
:app.get('/data',(req,res)=>{
//查询数据
User.findOne({name:'Mike'},(err,doc)=>{
res.json(doc)
})
})
此时仅返回一个
{}
套着的JSON对象删除数据:
//删除User中年龄为18的
User.remove({age:18},(err,doc)=>{
console.log(err ? err : doc);
})
成功后即可看到
Express
终端提示:{ n: 3, ok: 1 }
在浏览器地址栏输入
http://localhost:9093/data
就可以看到:[]//一个空数组,就代表我们删除成功了。
更新数据:
//更新数据
User.update({name:'Mike'},{'$set':{age:30}},(err,doc)=>{
console.log(doc);
})
最最基础的使用入门也就先到这,讲的有点乱,这也是自己学React的时候顺带学的一个简易的服务端,方便支持自己的项目。【【React.js|【React.js 04】Express配合MonogoDB使用】附上完整代码:
后面还会有更负责的应用,包括拆分表之后的,还有POST请求,后期会再更新上。
const express = require('express')
//引入mongoose
const mongoose = require('mongoose')//连接mongo 并且使用imooc这个集合 不存在则会自动创建
const DB_URL = 'mongodb://127.0.0.1:27017/imooc'
mongoose.connect(DB_URL)
mongoose.connection.on('connected',()=>{console.log('mongo connect success');
})//类似mysql的表,mongo会有文档、字段的概念
//类似定义了一张表
const User = mongoose.model('user',new mongoose.Schema({
name:{type:String,require:true},
age:{type:Number,require:true}
}))//创建数据
// User.create({
//name:'Jason',
//age:18
// },(err,doc)=>{
//console.log(err ? err : doc);
// })//删除数据
// User.remove({age:18},(err,doc)=>{
//console.log(err ? err : doc);
// })// //更新数据
// User.update({name:'Mike'},{'$set':{age:30}},(err,doc)=>{
//console.log(doc);
// })// 新建app
const app = express()app.get('/',(req,res)=>{
res.send('Hello world')
})
app.get('/data',(req,res)=>{
//查询数据
User.findOne({name:'Mike'},(err,doc)=>{
res.json(doc)
})
})app.listen(9093,function(){
console.log('Node app start at port 9093');
})
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长