标签:
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,最后看一下效果
标签:
原文地址:http://www.cnblogs.com/myzy/p/5765059.html