作者:唐旭阳一一一滴泪15 | 来源:互联网 | 2023-02-01 15:29
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,最后看一下效果