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