码迷,mamicode.com
首页 > 数据库 > 详细

mongodb+nodejs 增删查的demo

时间:2016-08-15 18:48:43      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

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,最后看一下效果

技术分享

 

mongodb+nodejs 增删查的demo

标签:

原文地址:http://www.cnblogs.com/myzy/p/5765059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!