热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mongodb+nodejs增删查的demo

1.启动数据库启动完成后显示 端口号是27017 2。创建数据库创建一个名为mydb的数据库 3.先查询一下当然的用户,再新增一个 4.创建数据表,查询所有的表db.c

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


 



推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
author-avatar
唐旭阳一一一滴泪15
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有