我爱编程

node+express+mongDB实现简单登录注册

2018-04-13  本文已影响0人  我是你的瑞雪呀

瑞雪的segmentfault

exprss学习参考资料
npm 与 package.json 快速入门
MongoDB的数据库和集合的基础操作

安装依赖包

npm install express -save npm install mongoose -save

编写入口文件

app.js:

var express = require('express')
var path = require("path")
var app=express()
var mongoose=require('mongoose')
require('./Schemas/UserSchema.js')
var User=mongoose.model('u2');//User为model name

var url = "mongodb://127.0.0.1:27017/nodejs";   //mongo是我的数据库
var db = mongoose.connect(url);                     //连接数据库

/**
 * 端口监听
 */
var  server=app.listen(3000,function () {
    console.log("start");
})
//静态文件放在view里
app.use(express.static('view'));
// view engine setup
app.set('views', path.join(__dirname, 'view'));
app.set('view engine', 'html');
// 拿出login的视图
app.get('/',function(req,res){
    res.sendfile(__dirname+'/'+'view/login.html')
})
//
// 登录的处理逻辑
//
app.get('/login',function(req,res){
    var name=req.query.name;
    var pwd=req.query.pwd;
    User.findOne({name:name,pwd:pwd},function(err,result){
        //把返回的值,传入回调函数
        if (result==null) {
            res.sendfile(__dirname+'/'+'view/no.html');
        } else {
            res.sendfile(__dirname+'/'+'view/index.html');
        }
    })

})

//注册逻辑
//
app.get('/register',function(req,res){
    var name=req.query.name;
    var pwd=req.query.pwd;
    //通过model建立一个document
    var user=new User(
        {
        name: name,
        pwd: pwd
        }
    )
    //保存到数据库里
//MongoDB 使用 insert() 或 save() 方法向集合中插入文档
//如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
user.save(function(err,result){
    if(result==null){
        res.sendfile(__dirname + "/" + "view/no.html" );
    }else {
        res.sendfile(__dirname + "/" + "view/register_OK.html" );}
})

})



数据库的schema文件 schemas/userSchema.js

[图片上传失败...(image-140bf9-1523600441063)]

var mongoose = require('mongoose');
var UserSchema =new mongoose.Schema({
    //定义数据模型
    name:String,
    pwd:String
});
// 将这个User Schema,发布为Model,第一个参数为数据库的一个集合(表),没有 会自动创建
mongoose.model('u2',UserSchema);

创建视图文件view

[图片上传失败...(image-cad1c7-1523600441063)]
eg:register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>注册</title>
</head>
<body>
    <form action="http://127.0.0.1:3000/register" >
        <p>
            <span>name:</span>
            <br>
            <input name="name" type="text">
        </p>
        <p>
            <span>password:</span>
            <br>
            <input  name="pwd" >
        </p>
        <p><input type="submit" value="submit"></p>
    </form>
</body>
</html>

login.html:

[图片上传失败...(image-512d82-1523600441063)]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
</head>
<body>
    <h1>Hello World</h1>
<p>Welcome to</p>
<form action="http://127.0.0.1:3000/login" >
    <p>
        <span>name:</span>
        <br>
        <input name="name" type="text">
    </p>
    <p>
        <span>password:</span>
        <br>
        <input  name="pwd" >
    </p>
    <p><input type="submit" value="submit"></p>
</form>
<a href="./register.html">注册</a>
</body>
</html>

成功了!看看我们的MongoDB数据库(这里用了可视化工具)

[图片上传失败...(image-390b69-1523600441063)]

上一篇下一篇

猜你喜欢

热点阅读