• node.js前后台交互示例 -- 使用node.js实现用户注册功能


    node.js环境自行搭建,参考菜鸟教程的node.js就可以。

    1 通过ajax提交index.html中form表单

    register.html文件如下:

    <!doctype html>
    <html>
    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <script src="jquery.js"></script>
        <script src="ajax.js"></script>
        <style>
            form{padding: 100px;border: 1px solid red;width: 350px;margin: 0 auto;}
            form input{display: block;margin: 0 auto;margin-bottom: 20px;}
        </style>
    </head>
    <body>
        <form id="register" action="" method="get">
            <input type="hidden" name="action" value="register" />&ensp;&ensp;名: <input type="text" name="name" placeholder="请输入用户名..." />&emsp;&emsp;码: <input type="password" name="pass" placeholder="请输入密码..." />
            电子邮件:<input type="email" name="email" placeholder="请输入合法邮件名..." />
            <input id="register-sub" type="submit" value="注册" />
        </form>
    </body>
    </html>

    ajax.js文件如下:

    $(function(){
        $('#register-sub').on('click',function(){
            var info = $('form').serialize();
            $.ajax({
                type:"get",
                url:"http://127.0.0.1:8081",
                data:info,
                success:function(response,status,xhr){
                    alert(response);
                    localStorage.name = $('input[name="name"]').val();
                }
            });
            return false;
        });
        
        $('#login-sub').on('click',function(){
            return false;
        });
    });

    2 重点node.js后台:接收数据、写入数据库、给前台返回信息

    首先创建服务器文件:server.js: res.writeHead();后边的那个是为了跨域访问

    var http = require('http');
    var url = require('url');
    var util = require('util');
    var mysql = require('./mysql');//这个是自己写的用来向数据库写入用户的文件
    
    http.createServer(function(req,res){
        res.writeHead(200,{"Content-Type":'text/plain','charset':'utf-8','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'});
        //解析URL参数
        var params = url.parse(req.url,true).query;
        mysql.reg(params.action,params.name,params.pass,params.email);
        res.write("注册成功");
        res.end();
    }).listen(8081);

    其次mysql.js文件连接数据库:

    exports.reg = function (action,name,pass,email){
        var mysql  = require('mysql');  
       
        var connection = mysql.createConnection({     
          host     : 'localhost',
          user     : 'root',
          password : '123456',
          port: '3306',     
          database: 'test', 
        }); 
        
        connection.connect();
         
        var modSql = "insert into user (name,pass,email) values ('"+name+"','"+pass+"','"+email+"')";
        
        connection.query(modSql,function (err, result) {
           if(err){
                 console.log('[UPDATE ERROR] - ',err.message);
                 return;
           }
        });
        connection.end();
    }

    这样其实一个注册功能就基本实现了,在浏览器中打开register.html,点击注册,会把数据提交到服务器(这里跨域了奥),再写入数据库,就实现了注册功能。

  • 相关阅读:
    vue中添加favicon.ico
    SEO 小技巧汇总
    vue中echarts随窗体变化
    vue加载Element ui地址省市区插件-- element-china-area-data
    Echarts 修改折线的颜色和折线的点的大小方法
    vue中添加swiper轮播插件
    Cannot find module 'object-keys' 的解决办法
    适用于所有页面的基础样式base.css
    git clone时的各种报错汇总
    css mix-blend-mode 颜色滤镜混合模式
  • 原文地址:https://www.cnblogs.com/by-dxm/p/6723039.html
Copyright © 2020-2023  润新知