美文网首页
Express与MongoDB

Express与MongoDB

作者: 我也不知道啊丶 | 来源:发表于2019-01-22 20:53 被阅读0次

    Express

    下载express

    npm install express --save
    

    然后可以在项目里新建一个server文件夹专门用来存放后台文件,在server里新建一个server.js
    打开server.js

    const express = require('express');
    

    新建一个app

    const app = express();
    

    监听端口,成功后回调

    app.listen(9093,function(){
        console.log('Node app start at port 9093')
    })
    

    试试一个最基本的命令,访问根目录,返回一个Hello word

    app.get('/',function(req/*请求*/,res/*响应*/){
        res.send('<h1>Hello word</h1>')
    })
    

    在命令行里执行

    node server.js
    

    如果显示了我们上面写的'Node app start at port 9093',表示监听成功


    此时打开浏览器,访问localhost:9093

    并没有返回Hello word。 这是因为修改文件后没有重启server,先control+c退出,然后重新执行
    node server.js
    刷新页面

    express还可以使用其他的数据格式

    app.get('/data',function(req,res){
        res.json({name:'react',type:'code'})
    })
    

    然后重启server.js,进入/data目录


    每次修改都要重启实在是太繁琐,我们使用nodemon来自动重启

    nopm install -g nodemon
    

    之前是用的node server.js,现在改成nodemon server.js


    当文件修改后会自动重启

    使用app.get和app.post分开开发get和post接口

    res.send --- 返回文本
    res.json --- 返回json
    res.sendfile --- 返回文件

    Mongodb

    下载mongodb

    1. 官网下载
    2. MacOS里可以直接 brew install mongodb

    启动Mongodb

    mongod --config /usr/local/etc/mongod.conf
    

    执行

    mongo
    

    这里一定要说一下

    刚下完mongodb时一直连接错误

    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    2017-03-28T02:11:34.775+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
    2017-03-28T02:11:34.778+0800 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
    connect@src/mongo/shell/mongo.js:237:13
    @(connect):1:6
    exception: connect failed
    

    找了半天才找到解决办法

    在bash输入brew services start mongodb
    然后再输入mongo
    回车,连接成功!

    node上比较好用的mongodb库是mongoose
    安装mongoose

    npm install mongoose --save
    

    引入

    const mongoose = require('mongoose')
    

    然后连接mongo

    const DB_URL = 'mongodb://localhost:27017'
    mongoose.connect(DB_URL)
    mongoose.connection.on('connected',function(){
        console.log('mongo connect success')
    })
    

    看到打印出mongo connect success表明连接成功了


    类似于mysql的表,mongo里有文档、字段的概念
    通过mongoose操作mongodb,储存的就是json

    Mongoose的基础使用

    1. Connect链接数据库
    2. 定义文档模型,Schema和model新建模型

    Mongoose文档类型

    • String,Number等数据结构
    • create,remove,update分别用来增、删、改的操作
    • find和findOne用来查询数据

    create

    User.create({
        name:'jack',
        age:18
    },function(err,doc){
        if(!err){
            console.log(doc)
        }else{
            console.log(err)
        }
    })
    

    find
    结合上面的代码

    app.get('/data',function(req,res){
        User.find({/*过滤条件*/},function(err,doc){
            res.json(doc)
        })
    })
    

    find与findOne
    我们来多增加几条数据


    find来查找age为20的数据
    app.get('/data',function(req,res){
        User.find({age:20},function(err,doc){
            res.json(doc)
        })
    })
    

    返回结果


    再来试试findOne

    app.get('/data',function(req,res){
        User.findOne({age:20},function(err,doc){
            res.json(doc)
        })
    })
    

    可以看到只会返回第一条age为20的数据


    remove

    User.remove({age:20},function(err,doc){
        if(!err){
            console.log(doc)
        }
    })
    

    update

    User.update({name:'王二狗'},{'$set':{name:'葫芦娃'}},function(err,doc){
        if(!err){
            console.log(doc)
        }
    })
    

    相关文章

      网友评论

          本文标题:Express与MongoDB

          本文链接:https://www.haomeiwen.com/subject/itiljqtx.html