mongodb+nodejs 增刪查的demo


1.啟動數據庫

啟動完成后顯示 

端口號是27017

 

2。創建數據庫 創建一個名為mydb的數據庫

   

3.先查詢一下當然的用戶,再新增一個

   

4.創建數據表,查詢所有的表

  db.createCollection("Account")

  

5.新增數據 

  db.account.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )

  其中account是表的名字

  

 6.然后我們就可以結合nodejs+mongodb了

 

這個是本項目的結構

這是setting.js文件

 

 這是result.js文件

base.js文件

user.js文件

 

user.js是一個模型文檔不會處理數據

7.在自己做項目中發現方法不是最難的,自己摸索路徑跳轉對我來說才是難的

我在app.js項目中加了

app.use('/login',require('./routes/login'));
這樣跳轉到了登錄頁面
app.use('/users', require('./routes/users')); //這個是用戶信息處理總的js

雖然很丑,但是可以完成基本的需求

這是頁面的代碼

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1>登錄 </h1>
<p>熱烈歡迎</p>
<form name="login" method="post" action="/users/loginAction">
<div>
    手機號:<input type="text" name ="mobile"/>
</div>
<div>
    密碼:<input type="text" name ="password"/>
</div>
    <button type="submit" value="登錄">登錄</button>
    <input type="submit" formaction="/users/register" value="注冊" />
</form>
</body>
</html>

8.處理業務邏輯的增加用戶,刪除用戶,查詢用戶列表 (./routes/users)

var express = require('express');
var router = express.Router();
console.log("user.js")
var UserEntity = require('../models/user').UserEntity;

var RestResult = require('../result');

router.post('/register',function(req,res,next){
  console.log("zhuce")
  var restResult = new RestResult();
  var mobile = req.body.mobile;

  var password = req.body.password;
  if(!password || password < 6){
    restResult.errorCode = RestResult.ILLEGAL_ARGUMENT_ERROR_CODE;
    restResult.errorReason = "密碼長度不能少於6拉";
    res.send(restResult);
    return;
  }
  //findOne方法,第一個參數數條件,第二個參數是字段投影,第三那個參數是回調函數
  UserEntity.findOne({mobile:mobile},'_id',function(err,user){
    if(err){

    }

    if(user){
      restResult.errorCode = RestResult.BUSINESS_ERROR_CODE;
      restResult.errorReason = "手機號已注冊";
      res.send(restResult);
      return;
    }

    var registerUser = new UserEntity({mobile:mobile,password:password});

    registerUser.save(function(err,row){
      if(err){
        restResult.errorCode = RestResult.SERVER_EXCEPTION_ERROR_CODE;
        restResult.errorReason="服務器有問題";
        res.send(restResult);
        return;
      }
      console.log("插入成功");
      res.send(restResult);
    })

  })

})
router.get('/', function(req, res, next) {
  res.render('login', { title: 'Express' });
});

router.post('/remove',function(req,res,next){
  var id = req.body.id;
  console.log('id:'+id);
  UserEntity.remove({
    _id:id
  },function(){

    console.log('刪除成功')
    res.send({code:1});
  })
})

//登陸路由
router.post('/loginAction',function(req,res,next){
  console.log("登錄中");
  var restResult = new RestResult();
  var mobile = req.body.mobile;
  console.log("mobile:"+mobile)
  console.log("password:"+mobile)
  if (!/1\d{10}/.test(mobile)){//手機號碼格式校驗
    restResult.errorCode = RestResult.ILLEGAL_ARGUMENT_ERROR_CODE;
    restResult.errorReason = "請填寫真確的手機格式";
    res.send(restResult);
    return;
  }
  var password = req.body.password;
  if(!password){
    restResult.errorCode = RestResult.ILLEGAL_ARGUMENT_ERROR_CODE;
    restResult.errorReason = "密碼不能為空";
    res.send(restResult);
    return;
  }

  UserEntity.findOne({mobile:mobile,password:password},{password:0},function(err,user){
    if(err){
      restResult.errorCode = RestResult.SERVER_EXCEPTION_ERROR_CODE;
      restResult.errorReason = "服務器異常";
      res.send(restResult);
      return;
    }

    if(!user){
      restResult.errorCode = RestResult.BUSINESS_ERROR_CODE;
      restResult.errorReason = "用戶名或密碼錯誤";
      res.send(restResult);
      return;
    }

  /*  restResult.returnValue = user;
    res.send(restResult);*/

    UserEntity.find({},{},function(e,docs){
      res.render('userlist',{
        "userlist":docs
      });
    });

    //更新最后登陸時間
    UserEntity.update({_id:user._id},{$set: {lastLoginTime: new Date()}}).exec();

  });

});


module.exports = router;

9,最后看一下效果

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM