nodejs + mongodb 实现后端

nodejs + mongodb 实现后端,第1张

1.首先下载 mongodb

2.在运行mongod 的盘录下建一个data.db的文件 (如果没有的话)

3.在控制台运行mongo之后可以输入查询语句查看mongodb数据库

3.1 创建一个叫 runoob 的数据库 bd 可以查看有哪些数据库

> use runoob
switched to db runoob
> db
runoob
> 

3.2 如果你想查看所有数据库,可以使用 show dbs 命令

3.3 可以看到,我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。

> db.runoob.insert({"name":"菜鸟教程"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
runoob  0.000GB

3.4 切换到数据库 runboot

switched to db runoob

3.5 删除数据库

 db.dropDatabase()

3.6 查看数据集合

db.集合名称.find()

(具体的 *** 作可以查看菜鸟教程学习)

4.接下来配置 nodejs

 下面以user中的文件和app.js的做介绍

4.1 uesr.js 文件

let mongoose = require('mongoose') 
//1.引用mongoose 


mongoose.connect('mongodb://localhost/tea',{useNewUrlParser: true})
//2.关联到哪个数据库

let Schema = mongoose.Schema

//3.新建一个叫userSchema的集合
let userSchema = new Schema({

//4.下面是他定义的属性  就像mysql中表的属性类型等定义

    phone: {
        type: String,
        require: true
    },
    name: {
        type: String,
        require:true
    },
    address: {
        type: String,
        require:true
    },
    balance: {
        type: String,
        require:true
    },
    password: {
        type: String,
        require:true
    }

})

//5.最后导出  后面router.js会引用

module.exports = mongoose.model('User',userSchema)

4.2 router.js

其他一些数据库查询语句可以查看moogodb官网

//1.引入上面的user.js文件  好像不用加js也可以
let User = require('./user')

//2.使用 express 框架  用用express框架的router开接口
let express = require('express')


let router = express.Router()

//3.post请求需要安装中间件  等下在app.js中会提及
router.post('/user/login', function (req, res) {

//4.user 集合的查找写法
    User.find({

    //4.1查找的phone 和 paaword 传参
    // req.body拿到前台传过来的参数

        phone: req.body.phone,
        password: req.body.password
    },
        function (err, ret) {
            if (err) {
                console.log('查找失败');
            } else {
                //4.2查找结果返回
                res.send(ret)
            }
        }
    )
})

//5.新建对象写法
router.post('/user', function (req, res) {

    new User({
        phone: req.body.phone,
        name: req.body.name,
        address: req.body.address,
        balance: req.body.balance,
        password: req.body.password
    }).save(function (err, ret) {
        if (err) {
            console.log('保存失败');
        } else {

        }
    })

})


//6.最后导出  app.js文件挂载上去

module.exports = router

4.3 app.js

//1. 这里就是引用这个中间件之后就可以发起post请求
const bodyParser = require('body-parser')

let express = require('express')

let app = express()


let tea = require('./tea/router')

//2.开辟静态资源
app.use('/public/', express.static('./public/'))

//挂载中间件 ##一定要在别的文件引用该中间件之前挂载
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())

app.use(user)

//3.允许跨域
app.all("*",function(req,res,next){    
    //设置允许跨域的域名,*代表允许任意域名跨域
        res.header("Access-Control-Allow-Origin","*");    
        //允许的header类型
        res.header("Access-Control-Allow-Headers","content-type");    
        //跨域允许的请求方式 
        res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");    
        if (req.method.toLowerCase() == 'options')
            res.send(200);  //让options尝试请求快速结束
        else
            next();
    })

//4.开辟端口号  这样就可以启动一个后台服务器了
app.listen(3000, function () {
    console.log('项目启动成功....');
})

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1296393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存