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的更多相关文章

  1. MongoDB的增删查改基本操作

    MongoDB的增删查改基本操作 先决条件建库.建集合.建文档 连接mongo,如果连接不上什么连接拒绝,输入mongod命令,启动服务后 输入mongo show dbs 显示当前的所有的数据库 一 ...

  2. MongoDB入门学习(三):MongoDB的增删查改

            对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改.         由于M ...

  3. MongoDB实现增删查方法

    1.添加信息 public void addInfo(Infomation infomation) { try{ // TODO Auto-generated method stub //连接Mong ...

  4. asp.net mvc5 step by step(一)——CURD增删查改Demo

    1.  新建一个项目:

  5. MongoDB数据库进阶 --- 增删查改...

    注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 在之前的文章中,我已经介绍了什么事MongoDB以及怎么在windows下安装MongoDB等等基本知识. ...

  6. nodejs连接mysql并进行简单的增删查改

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  7. 8天学通MongoDB——第二天 细说增删查改

    原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html 看过上一篇,相信大家都会知道如何开启mongodb了 ...

  8. MongoDB数据库(二):增删查改

    MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...

  9. [MongoDB] MongoDB增删查改

    MongoDB的三元素,数据库.集合.文档,集合就是表,文档就是行 开启MongoDB,cd切换到MongoDB的安装目录下的bin目录里,使用命令mongod 开启,参数:--dbpath 路径,把 ...

随机推荐

  1. QT之QComboBox

    1.addItems需要注意的事项: 1.在QT中设置maxVisibleItems的值,设置Items的最大可显示的值.(一般默认为10) 2.在每次需要清除已经添加的tems的时候需要注意,ui. ...

  2. 网络安全系列 之 SQL注入学习总结

    目录 1. sql注入概述 2. sql注入测试工具 3. sql注入防御方法 3.1 问题来源 3.2 防御方法 4. SQL注入防御举例 4.1 使用JDBC时,SQL语句进行了拼接 4.2 使用 ...

  3. 论文阅读-(CVPR 2017) Kernel Pooling for Convolutional Neural Networks

    在这篇论文中,作者提出了一种更加通用的池化框架,以核函数的形式捕捉特征之间的高阶信息.同时也证明了使用无参数化的紧致清晰特征映射,以指定阶形式逼近核函数,例如高斯核函数.本文提出的核函数池化可以和CN ...

  4. python爬取(自动化)豆瓣电影影评,并存储。

    from selenium import webdriverfrom selenium.webdriver import ActionChainsimport time driver = webdri ...

  5. <selenium>selenium基础操作

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...

  6. Largest Rectangle in a Histogram /// 单调栈 oj23906

    题目大意: 输入n,,1 ≤ n ≤ 100000,接下来n个数为每列的高度h ,0 ≤ hi ≤ 1000000000 求得最大矩阵的面积 Sample Input 7 2 1 4 5 1 3 34 ...

  7. JS流程控制语句 二选一 (if...else语句) 语法: if(条件) { 条件成立时执行的代码} else {条件不成立时执行的代码}

    二选一 (if...else语句) if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码. 语法: if(条件) { 条件成立时执行的代码} else {条件不成立时 ...

  8. Luogu P2458 [SDOI2006]保安站岗(树形dp)

    P2458 [SDOI2006]保安站岗 题意 题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下 ...

  9. angularjs 1 Failed to read the 'selectionStart' property from 'HTMLInputElement':

    在找angularjs input(type='number')在获取焦点的时候,文本框内容选中效果,参考了:Select text on input focus,我直接复制他的code之后,在ion ...

  10. HNOI2018思记

    4-13 顺顺利利到了湖南.晚上认真研读cf毒瘤题题解,未果. 发现这里含铁丰富的高温多雨式红土地.以及窗户特别深,总有一圈小阳台的房子,门楣深邃如瞳. 看了一波miaom的ZJOI游记,思考了一下解 ...