# MongoDB与 MongoDB compass
下载安装MongoDB安装与配置
下载安装MongoDBcompass 提取码: 7f9i
> 运行MongoDB,MongoDBcompass连接MongoDB,并新建数据
# nodejs与MongoDB连接
```
node文件夹下 npm install mongoose --save
//引入模块
var mongoose = require('mongoose');
//连接数据库
//myUsers是我新建数据的名称
mongoose.connect('mongodb://localhost:27017/myUsers');
//得到数据库连接句柄
var db = mongoose.connection;
//通过数据库连接句柄,监听mongoose数据库成功的事件
db.on('open',function(err){
if(err){
console.log('数据库连接失败');
throw err;
}
console.log('数据库连接成功')
})
//创建一个模型
//注意 myUsers数据库下的表名是users,是复数
var user = mongoose.model("user" , userSchema);
console.log(user)
user.find({},function(err,docs){
console.log(err);
console.log(docs);//查询全部这个表返回的数据
});
```
# app.js所有的数据
```
var express = require('express')//引入 express包
var path = require('path')
var bodyparser = require('body-parser')//对form表单提交的数据进行引用
var app = express()//实例化一个对象
app.use(bodyparser.json())//对json数据进行处理
app.use(bodyparser.urlencoded({extended:false}))//解密
//引入模块
var mongoose = require('mongoose');
//连接数据库
mongoose.connect('mongodb://localhost:27017/myUsers');
//得到数据库连接句柄
var db = mongoose.connection;
//通过数据库连接句柄,监听mongoose数据库成功的事件
db.on('open',function(err){
if(err){
console.log('数据库连接失败');
throw err;
}
console.log('数据库连接成功')
})
app.post('/b' , function(req , res) {//post接口
// res.status(200).send('这是get回来的数据')
var stu={
name:'lilei',
age:21
}
res.status(200).json({
code:200,
success:true,
data:stu
})
})
app.get('/a' , function(req , res) {//get接口
// res.status(200).send('这是get回来的数据')
//创建一个schema
var userSchema = {
"name" : String,
"age" : Number,
"sex" : String,
"createTime": Date
};
//创建一个模型
var user = mongoose.model("user" , userSchema);
console.log(user)
user.find({},function(err,docs){
console.log(err);
console.log(docs);
});
// var stu={
// name:'lili',
// age:20
// }
// res.status(200).json({
// code:200,
// success:true,
// data:stu
// })
})
app.get('/d/:id' , function(req , res) {//get接口传参
// res.status(200).send('这是get回来的数据')
var students=[
{name:'hello',age:21,id:100},
{name:'helloni',age:22,id:101},
{name:'hellowo',age:24,id:102},
]
var idx=req.params.id;
console.log(idx)
var obj={}
for(var i=0;i<students.length;i++) {
if(students[i].id == idx) {
obj=students[i];
}
}
res.status(200).json(obj)
})
app.post('/f' , function(req , res) {//post接口 from表单提交
// res.status(200).send('这是get回来的数据')
var name=req.body.name;
var age=req.body.age;
var id=req.body.id;
var obj={
name:name,
age:age,
id:id
}
console.log(name);
res.status(200).json(obj)
})
app.all('/c' , function(req , res) {//接口c,既可以get请求到也可以为post请求
// res.status(200).send('这是get回来的数据')
var stu={
name:'liuhao',
age:22
}
res.status(200).json({
code:200,
success:true,
data:stu
})
})
//src下新建一个 list.html localhost:3000/list跳转到这个页面
app.use('/list',function(req,res) {
res.status(200).sendFile(path.join(__dirname,'src','info.html'))
})
//index.html默认访问页面 localhost:3000 跳转到这个页面
app.use(express.static(path.join(__dirname,'src')))
//src下新建一个 err文件夹 并新建一个404.html,如果上面 都找不到就跳到404页面
app.use('*',function(req,res) {
res.status(200).sendFile(path.join(__dirname,'src','err','404Error.html'))
})
app.listen(3000 , function(err){//启动一个3000的服务
if(err){
console.log('监听失败')
throw err
}
console.log('服务器已开启,端口号为3000')
})
```
```