美文网首页我爱编程
node+express+mongDB实现简单登录注册

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

作者: 我是你的瑞雪呀 | 来源:发表于2018-04-13 14:20 被阅读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)]

    相关文章

      网友评论

        本文标题:node+express+mongDB实现简单登录注册

        本文链接:https://www.haomeiwen.com/subject/admckftx.html