欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Node.js之express框架(三)

程序员文章站 2022-06-15 18:42:30
...

今天实现登录注册,数据传入mongodb数据库功能

一.先终端安装express,mongodb

二.建立一个连接mongo数据库的js文件,取名mongos.js

   const mongodb = require('mongodb')

const MongoClient = mongodb.MongoClient;

const dbUrl = 'mongodb://localhost:27017'
function getTestDB(callback){
  MongoClient.connect(dbUrl,function(err,client){
    if(err){
      console.log(err)
      return
    }
    console.log('连接成功')
  
    const testDb = client.db('store') //db就是选取数据库的
     callback(testDb)
   
  })
}

module.exports={
  getTestDB
}

三.建立一个js文件

const express = require('express')
const {getTestDB} =require('./mongos') //引入之前的js文件
const bodyParser = require('body-parser')//解析post数据
const path = require('path')//处理路径的核心模块

const app =express()
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname,"..","public")))//避免不同操作系统的路径错误

注册代码
app.post('/register',function(req,res){. //register,注册html
 console.log(req.body.login_name)
 
  getTestDB(function(storeDb){
    storeDb.collection('users').insertOne(req.body,function(err,result){
      if(err){
        res.send({
          status:201,
          msg:err.message
        })
        return
      }
      
      res.send({
        status:200,
        msg:'成功',
        data:{
          user_id:result.insertedId
        }
      })
    })
  
  })  
})

登录代码
  app.post('/login',function(req,res){
  const login_name = req.body.login_name
  const password = req.body.password
  getTestDB(function(storeDb){
    storeDb.collection('users').find({login_name:login_name,password:password}).toArray(function(err,result){
      if(err){
        res.send({
          status:202,
          mes:'数据库连接错误'
        })
        return
      }
      if(result.length !==0){
        res.send({
          status:200,
          mes:'ok'
        })
      }else{
        res.send({
          status:202,
          mes:'登录失败'
        })
      }
      
    })

    })
})
   //3000端口服务器
	   const port =3000;
	app.listen(port,function(err){
	  if(err){
	    console.log(err)
	    return
	  }
	  console.log('成功')
	})

四.先实现注册页面,我们通过axios传递信息

html

     <div>
   登录名: <input type="text" id="login_name">
   密码: <input type="password" id="password">
   确认密码: <input type="password" id="confirm_password">
    <button onclick="register()">注册</button>
  </div>

js

    function register(){
  var login_name =  document.getElementById('login_name').value
    var password =  document.getElementById('password').value
     var confirm_password =  document.getElementById('confirm_password').value
    
     if(password.trim()===''){
       alert('请输入密码')
       return
     }
     if(password!==confirm_password){
       alert('密码不一致')
       return
     }
     axios.post('/register',{
      login_name:login_name,
      password:password,
      
     }).then(function(result){
       
       if(result.data.status ===200){
         location.href='./login.html'
       }
     })
   }

五.实现登录页面

html

   <div>
    登录名: <input type="text" id="login_name">
    密码: <input type="password" id="password">
     <button onclick="login()">登录</button>
   </div>

js

function login(){
var login_name =  document.getElementById('login_name').value
var password =  document.getElementById('password').value
axios.post('/login',{
  login_name:login_name,
  password:password,
}).then(function(result){
})
}
相关标签: mongodb nodejs js