简述
我是一个前端的小白,学长引荐这个社区给我已经有一段时间了。然则一向以为本身的程度太低,一向没在这上
面写点什么。近来最先进修nodejs,就做了一个demo来分享给人人.第一次写,不足的处所还望包涵。
注册的html
基础的表单html代码就不细致说了,这个不是重点,直接上代码:
<div class="regist">
<h2>注册</h2>
<div class="inputbox">
<input type="text" name="fullname" placeholder=" 昵称" id="nikename">
<input type="text" name="email" placeholder=" 邮箱" id="email-two">
<input type="password" name="password" placeholder=" 暗码" id="password-two">
</div>
<button id="register">注册</button>
</div>
注册的js
这里的js重要运用的是jquery,不懂jquery的可以先去相识。jquery运用ajax是迥殊轻易的,这里以get的体式格局传递给背景username,nickname,password三个参数。url内里写上与背景协商的地点,然后再是胜利与失利的回调函数,经常使用ajax的小伙伴是否是以为很通例。是的,如许写不管背景言语是什么就都没关系了。
$("#register").click(function() {
$.ajax({
url: "/regist",
type: "GET",
data: {
username: $("#email-two").val(),
nickname: $("#nikename").val(),
password: $("#password-two").val()
},
success: function(data){ // alert背景的返回值
alert(data);
},
error: function(){
alert('接见失利');
}
});
});
注册的node
这里我运用的nodejs的express框架,不懂express框架的可以先去相识一下。这个框架上手很轻易的,很合适我们如许的新手。假如你想直接运用这里的代码,肯定是会报错的,须要你拿npm装置express和mysql。固然至于mysql你须要在当地装置mysql,不会一点mysql的先去相识一下mysql。实在你也可以用nodejs把数据写到文件内里,就可以不必mysql了。其他的见代码注解。
var express=require("express"); // 导入express
var events = require('events');
var emitter = new events.EventEmitter(); // 建立监听器对象(你也可以直接返回值,不必这个)
var app=express();
var path=require("path");
var mysql=require("mysql"); // 导入mysql
var dirname=__dirname; // 指向当前js的途径
app.use(express.static(path.join(__dirname, 'project'))); // 这里你可以直接接见你的静态文件,比方你的index.html
/*----注册---*/
app.get("/regist",function(req,res){ // 猎取get的要求的途径,拿到前台传来的参数
// 建立数据库衔接
var connection=mysql.createConnection({
host:"localhost",
user:"root",
password:"您的暗码",
database:"node"
});
// 衔接数据库
connection.connect();
// 监听数据库写入返回的参数
emitter.on("ok",function(){
return res.end("注册胜利"); // 向前台返回数据
});
emitter.on("false",function(){
return res.end("用户名已存在"); // 向前台返回数据
});
var sql="insert into user(username,password,nickname) values(?,?,?)"; // 向user这个内外写入数据
var sqlValue=[req.query.username,req.query.password,req.query.nickname];
connection.query(sql,sqlValue,function(err){ // 实行sql语句
if(err){
console.log(err.message); // 输出数据库毛病信息
emitter.emit("false"); // 返回失利
}
emitter.emit("ok"); // 返回胜利
});
connection.end(); // 封闭数据库
});
app.listen(8081); // 设置要求的端口号,你可以在当地接见localhost://8081(随意写一个没被占用的端口就好)
登录html
同样是简朴的表单内容,直接上代码了:
<div class="login">
<h2>上岸</h2>
<div class="inputbox">
<input type="text" name="email" placeholder=" 邮箱" id="email-one">
<input type="password" name="password" placeholder=" 暗码" id="password-one">
<input type="text" name="authCode" placeholder=" 验证码" id="authcode-one">
</div>
<button id="userLogin">上岸</button>
</div>
登录的js
这里运用的同样是一个ajax要求,基础跟注册的要求差不多,传用户名跟暗码到背景,就不多说了。
$("#userLogin").click(function(){
$.ajax({
url: "/login",
type: "GET",
data: {
username: $("#email-one").val(),
password: $("#password-one").val()
},
success: function(data){ // alert背景返回的参数
alert(data);
},
error: function(){
alert('接见失利');
}
});
});
登录的node
这里也跟上面的注册nodejs差不多,只是逻辑稍稍有点差别,请看解释。这里登录也写在同一个js文件内里,就不一一地去导入某些文件了,处着app这个对象直接用,这里就不必监听器。
app.get("/login",function(req,res){ // 猎取登录传过来的值
// 建立数据库衔接
var connection=mysql.createConnection({
host:"localhost",
user:"root",
password:"您的暗码",
database:"node"
});
// 衔接数据库
connection.connect();
var sql="select * from user where username='"+req.query.username+"' and password='"+req.query.password+"'"; // 在数据库内里查询用户名跟暗码
connection.query(sql,function(err,result){ // 实行sql语句,并返回效果
if(err){
res.end("登录失利"); // 数据库毛病
console.log(err);
}
if(result.length==0){
res.end("用户名暗码不正确"); // 数据库内里没找到配对的内容返回参数
}else{
res.end("上岸胜利"); //返回登录胜利
}
})
connection.end(); // 封闭数据库
})
这是小白第一次发文章,愿望与跟我一样的小白同享。本文有什么不足之处愿望各大神指正。