使用node.js来连接mongodb数据库

使用node.js来连接mongodb数据库

一:mongodb简介

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

二:准备工作

1、安装node.js,官网地址:https://nodejs.org/en/(建议大家安装稳定版本)

2、安装mongdb数据库 官网地址:https://www.mongodb.com/,并配置全局的环境变量

3:在cmd中使用npm下载所需要的库,这里所使用的是mongoose库,来进行对mongodb数据进行连接

4:初始化项目,npm init -y(个人的配置,在生成的package.json文件中进行修改)

在package.json文件中,我们可以scripts属性,改成我们需要使用的命令,使用npm run command 来执行命令

在这里插入图片描述

5:安装supervisor库,来提高代码的执行效率,这样我们每次修改代码后,就不用每次去重启服务器了

6:创建一个服务(这里提供两种方式)

​ 一:使用原生的方式进行创建

//引入http模块
const http = require('http')
//创建一个服务
const server = http,creatServer({},(req,res) =>{
    //req为前端请求的相关数据
    //res为请求结果
})
//监听端口
server.listen(9001, () =>{
    console.log('server started on port 9001')
})

​ 二:使用express框架来进行创建

//引入模块(这里express不是node内置模块,需要使用npm安装下载)
const express = require('express')
//创建一个实例对象
const server = express()
//监听一个端口
server.listen(9000,() = >{
    console.log('server started on port 9000')
})
//使用插件来指定入口文件
server.use(express.static('path',{index:'login.html'}))
//这里可以使用path来进行路径优化
/*
const path = require('path') path不是内置库,需要使用npm下载
server.use(express.static(path.resolve(__dirname,static),{index:'login.html'}))
__dirnaem 为当前目录路径
*/
//接口管理
server.get/post('url',(res,rep) = >{
    
})

7:连接数据库

//引入mongodb,这里使用的是mongoose库
//连接数据库
const mongoose = require('mongoose')
const url = 'mongodb://localhost:27017/user_info'
mongoose.coonet('url',(err) =>{
    if(!!err){
        console.log('db connect failed')
        throw err
    }
    else{
        console.log('db connect success')
    }
})

这个便可以在cmd中测试数据库有没有连接成功了

8:定义用户模型和描述信息

//定义集合字段描述信息
const Schema = mongoose.Schema 
const userScheam = new Schema({
    userid:{
        type:String,
        required: true //必须有值
    },
    username:{
        type:String,
        required: true //必须有值
    },
    userpwd:{
        type:String
    },
    userphone:{
        type:Number
    },
    vtdcode:{
        type:Number
    },
    token:{
        type:String
    }
})
//定义用户模型
const userModel = mongoose.model('userScheam',userScheam,'user_info')

9:在接口中,通过用户模型对数据库进行操作

app.get('/user/login',(req,res) =>{
    userModel.findOne({},{},(err,doc) =>{
        if(!!err){
            res.send({
                code:500,
                message:'服务器错误,请稍后重试'
            })
        }
        else{
            res.send({
                code:200,
                message:'请求成功',
                data:doc
            })
        }
    })
})

附:mongodb,常用的增删查改命令

1、显示当前数据库的所有集合:show collections;
2、向一个集合中插入一条数据:db.user_info.insert({id: 'admin', name: '超级管理员', pwd: 'admin123'})
3、查询数据:db.user_info.find() 允许带一个查询条件以及获取到的字段({id: 'admin'}, {id:0/id:1})
4、删除数据:db.user_info.remove({id: 'admin'})
5、修改数据:db.user_info.update({id: 'admin'}, {$set: {name: 'zhangsan'}})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值