使用 ejs 渲染数据库中的数据

 

const http = require('http');
const Router = require('./Router')
const {MongoClient} = require('mongodb')
const ejs = require('ejs')
const queryString = require('querystring')

const dataUrl = 'mongodb://admin:123@localhost:27017/'
const dbName = 'hello'
//注册web服务
http.createServer(Router).listen(8081);

//配置路由
//首页,渲染数据库中user表数据
Router.get('/',(req,res)=>{
    MongoClient.connect(dataUrl,{useUnifiedTopology:true},(err,client)=>{
        if(err){
            console.log("数据库连接失败:",err)
            return
        }
        console.log("数据库连接成功")
        let db=client.db(dbName)
        
        //查询数据
        db.collection("user").find({}).toArray((err,result)=>{
            if(err){
                console.log("查询数据失败:",err)
                return
            }
            console.log("查询数据成功")
            client.close()
            //渲染数据
            ejs.renderFile('./views/index.ejs',{
                list:result
            },(err,data)=>{
                res.send(data)
            })
        })
    })
})

//注册页,获取注册页面
Router.get('/register',(req,res)=>{
    ejs.renderFile('./views/register.ejs',{},(err,data)=>{
        res.send(data)
    })
})

//执行注册逻辑,将用户填写的注册信息添加到数据库中
Router.post('/doRegister',(req,res)=>{
    //let params=req.body //name=zhangsna&age=12的格式,需要转换成JSON字符串
    let params = queryString.parse(req.body)
    MongoClient.connect(dataUrl,{useUnifiedTopology:true},(err,client)=>{
        if(err){
            console.log("数据库连接失败:",err)
            return
        }
        console.log("数据库连接成功")
        let db=client.db(dbName)
        //将用户填写的注册信息添加到数据库中
        db.collection("user").insertOne(params,(err,result)=>{
            if(err){
                console.log("注册信息添加到数据库中失败:",err)
                return
            }
            console.log("注册信息添加到数据库中成功")
            res.end("add your information to database success.")
        })
    })

})

console.log('Server running at http://127.0.0.1:8081/');

 

 

 

 

 

posted @ 2021-02-01 23:18  shanlu  阅读(383)  评论(0编辑  收藏  举报