一、Express+mongodb开发web后台接口
- Express开发web接口
- 非关系型数据库mongodb
- 使用nodeJs的mongoose模块链接和操作mongodb
二、Express
基于nodeJs,快速、开发、极简的web开发框架
- npm install express --save 安装express
- hello world应用
新建server.js
const express = require('express')
//新建app
const app = express()
app.get('/',function(req,res){
res.send('<h1>hello world</h1>')
})
app.get('/data',function(req,res){
res.json({name:'sytin',type:'react'})
})
app.listen(9093,function(){
console.log('node app start at port 9093')
})
cd server
node server.js //改动内容需要手动重启
//浏览器访问http://localhost:9090
//显示 hello world
//浏览器访问http://localhost:9090/data
//显示{name:'sytin',type:'react'}
- 监听路由和相应内容,使用nodemon自动重启
npm install -g nodemon
modemon server.js - 其他特性
app.get、app.post分别开发get和post接口
app.use使用模块
res.send、res.json、res.sendfile响应不用的内容
3.mongodb
- 官网https://www.mongodb.com/下载mongodb
-
创建数据库文件的存放位置
在MongoDB下创建data,在data下再创建db:D:\software\MongoDB\data\db
因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。 -
启动MongoDB服务
1. 打开cmd命令行
2. 进入D:\software\MongoDB\bin目录(注意:先输入d:进入d盘,然后输入cd D:\software\MongoDB\bin)
3. 输入如下的命令启动mongodb服务:mongod --dbpath D:\software\MongoDB\data\db
即是在第二步创建的数据库存放文件路径下启动。
4. 在浏览器输入http://localhost:27017 (27017是mongodb的端口号)查看,若显示如下内容表示启动成功,如果不成功,查看服务端口是否被占用。在本地windows“服务”中,是没有配置上mongodb 服务的
-
配置本地windows mongodb 服务
这样可设置为 开机自启动,可直接手动启动关闭,可通过命令行net start MongoDB 启动。该配置会大大方便。
1. 先在data文件下创建一个新文件夹log(用来存放日志文件)
2. 在Mongodb新建配置文件mongo.config
3. 用记事本打开mongo.config ,并输入:dbpath=D:\software\MongoDB\data\db logpath=D:\software\MongoDB\data\log\mongo.log
4. 用管理员身份打开cmd配置windows服务
cmd先跳转到 D:\software\MongoDB\bin目录下。
输入:mongod --config “D:\software\Mongodb\mongo.config” --install --serviceName “MongoDB”
即根据刚创建的mongo.config配置文件安装服务,名称为MongoDB。
如果成功的话,会发现本地服务多了”MongoDB"服务。5. react项目中使用mongodb
npm install mongodb
- npm install mongoose --save 安装mongoose
5. npminstall mogoose --save
6. 连接mongo
const mongoose = require('mongoose')
//连接mongo并且启动my_chat这个集合
const DB_URL = 'mongodb://localhost:27017/my_chat'
mongoose.connect(DB_URL)
mongoose.connection.on('connected',function(){
console.log('mongo connect success')
})
//类似于mysql的表 mongdb里有文档、字段的概念
- 通过mongoose操作mongodb,存储的就是json,相对于mysql来说,要易用很多
7. Connect连接数据库
8. 定义文档模型,Schema和model新建模型
//类似于mysql的表,mongo里有文档,字段的概念
const User = mongoose.model('user',new mongoose.Schema({
name:{type:String,require:true},
age:{type:Number,require:true}
}))
// 新增数据
// User.create({
// name:'eunice',
// age:18
// },function(err,doc){
// if(!err){
// console.log(doc)
// }else{
// console.log(err)
// }
// })
//修改
// User.update({name:'eunice'},{'$set':{age:20}},function(err,doc){
// console.log(doc)
// })
//删除 {}过滤的对象
// User.remove({age:18},function(err,doc){
// console.log(doc)
// })
//find({},func)
User.findOne({name:'eunice'},function(err,doc){
res.json(doc)
})