Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. var express = require('express');
  2. var db = require('../db');
  3. var router = express.Router();
  4.  
  5. //member/:
  6. router.post('/', function(req, res, next) {
  7. console.log('/member');
  8. console.log(JSON.stringify(req.body, null, 2));
  9. var email = req.body.email;
  10. var username = req.body.username;
  11. var password = req.body.password;
  12.  
  13. console.log("email: "+email+", username: "+username+", password: "+password);
  14. var sql = "INSERT INTO member(email, username, password) VALUES(?,?,?)";
  15. var input = [email, username, password];
  16.  
  17. console.log("db before");
  18.  
  19. try{
  20. console.log("db before2");
  21. db.get().query(sql, input, function(err, res){
  22. console.log("db");
  23. if(err){
  24. console.log(JSON.stringify(err, null, 2));
  25. res.json({message:"error",code:401,result:false});
  26. }else {
  27. console.log(JSON.stringify(res, null, 2,));
  28. res.json({message:"Signed up successflly.", code:100, result:true});
  29. }
  30. });
  31. }catch(e){
  32. console.log(e);
  33. }
  34. });
  35.  
  36. ...
  37.  
  38. const mariadb = require('mariadb');
  39.  
  40. var pool;
  41.  
  42. exports.connect = function(done){
  43. console.log("Trying to connect DB...");
  44. pool = mariadb.createPool({
  45. host: 'localhost',
  46. user: 'root',
  47. password: 'simple123SNS',
  48. database:"SimpleSNS",
  49. connectionLimit: 5 // Why 5 ???
  50. });
  51.  
  52. pool.getConnection()
  53. .then(conn=>{
  54. console.log("DB connected. id: "+conn.threadId);
  55. conn.end(); //release to pool
  56. }).catch(err=>{
  57. console.log("DB failed connection: "+err);
  58. });
  59. }
  60.  
  61. function makeToken(){
  62. console.log("makeToken()");
  63. var text="";
  64. var possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
  65. for(var i=0;i<32;i++){
  66. text+=possible.charAt(Math.floor(Math.random()*possible.length));
  67. }
  68. return text;
  69. }
  70.  
  71. function dbHelper(){
  72. console.log("dbHelper()");
  73. this.emailRequest=function(email,num){
  74. console.log("emailRequest");
  75. pool.getConnection()
  76. .then(conn=>{
  77. conn.query("INSERT INTO email_verification(email, code) VALUES(?,?)",[email,num]);
  78. conn.end(); //release to pool
  79. })
  80. .catch(err=>{
  81. console.log("not connected due to error: "+err);
  82. });
  83. }
  84.  
  85. this.verify=async function(email,num){
  86. console.log("verify");
  87. let conn;
  88. var result=false;
  89. try{
  90. conn=await pool.getConnection();
  91. // within 3minutes
  92. const rows=await conn.query("SELECT count(*) FROM email_verificaiton WHERE email=? AND code=? AND req_time >= NOW() - INTERVAL 3 MINUTE",[email,num]);
  93. if(rows[0]["count(*)"]>0){
  94. result=true;
  95. }
  96. }catch(err){
  97. throw err;
  98. }finally{
  99. if(conn)conn.end();
  100. }
  101. return result;
  102. }
  103.  
  104. this.verifyUpdate=function(email,num){
  105. console.log("verifyUpdate");
  106. pool.getConnection()
  107. .then(conn=>{
  108. conn.query("UPDATE email_verification SET status = 1 WHERE email=? AND code=?",[email,num]);
  109. conn.end(); //release to pool
  110. })
  111. .catch(err=>{
  112. console.log("not connected due to error: "+err);
  113. });
  114. }
  115.  
  116. this.emailRegister=async function(email,pass,nick,devid){
  117. console.log("emailRegister");
  118. let conn;
  119. var result;
  120. try{
  121. conn=await pool.getConnection();
  122. var rows=await conn.query("SELECT count(*) FROM email_verification WHERE email=? AND status = 1",[email]);
  123. if(rows[0]["count(*)"]>0){
  124. rows=await conn.query("SELECT count(*) FROM member WHERE email=?",[email]);
  125. if(rows[0]["count(*)"]==0){
  126. var token=makeToken();
  127. rows=await conn.query("INSERT INTO member (email,password,username,device_id,login_method,token) VALUES(?,?,?,?,0,?)",[email,pass,nick,devid,token]);
  128. if(rows["affectedRows"]>0){
  129. result={result:true,code:200,message:"success",data:[{email:email,token:token}]};
  130. }else{
  131. result={result:false,code:401,message:"db error"};
  132. }
  133. }else{
  134. result={result:false,code:402,message:"already registered id"};
  135. }
  136. }else{
  137. result={result:false,code:403,meesage:"email not verified"};
  138. }
  139. }catch(err){
  140. throw err;
  141. }finally{
  142. if(conn)conn.end();
  143. }
  144. return result;
  145. }
  146.  
  147. this.emailLogin=async function(email,pass,devid){
  148. console.log("emailLogin");
  149. let conn;
  150. var result;
  151. try{
  152. conn=await pool.getConnection();
  153. rows=await conn.query("SELECT * FROM member WHERE email=?",[email]);
  154. if(rows.length==1){
  155. if(rows[0]["password"]==pass){
  156. var token=makeToken();
  157. rows=await conn.query("UPDATE member SET device_id = ?, token = ? WHERE email=?",[devid,token,email]);
  158. console.log(rows)
  159. if(rows["affectedRows"]>0){
  160. result={result:true,message:"Sign up Success.",code:200,data:[{email:email,token:token}]};
  161. }else{
  162. result={result:false,message:"db error",code:401};
  163. }
  164. }else{
  165. result={result:false,message:"wrong password",code:402};
  166. }
  167. }else{
  168. result={result:false,message:"not registered id",code:403};
  169. }
  170. }catch(err){
  171. throw err;
  172. }finally{
  173. if(conn)conn.end();
  174. }
  175. return result;
  176. }
  177. }
  178.  
  179. exports.get=function(){
  180. console.log("exports.get");
  181. return pool;
  182. }
  183. // module.exports = new dbHelper;
  184.  
  185. var createError = require('http-errors');
  186. var express = require('express');
  187. var path = require('path');
  188. var cookieParser = require('cookie-parser');
  189. var logger = require('morgan');
  190. var db = require('./db');
  191.  
  192. //var passport = require('./passport');
  193. //var auth = require('./routes/auth');
  194.  
  195. var memberRouter = require('./routes/member');
  196. var indexRouter = require('./routes/index');
  197. var emailRouter = require('./routes/email');
  198. var googleRouter = require('./routes/google');
  199. var facebookRouter = require('./routes/facebook');
  200.  
  201. var app = express();
  202.  
  203. // view engine setup
  204. app.set('views', path.join(__dirname, 'views'));
  205. app.set('view engine', 'jade');
  206.  
  207. db.connect(function(err){
  208. console.log(err);
  209. if(err){
  210. console.log('Unable to connect to MariaDB.');
  211. process.exit(1);
  212. }
  213. });
  214. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement