node連接數據庫(express+mysql)


操作是在ubuntu系統的下環境,簡單記錄一下過程。

首先用apt-get安裝數據庫,鍵入命令 sudo apt-get install mysql-server , 一路回車,然后在一個界面設置一下數據庫root的密碼就好了

在數據庫里面我們需要創建一些東西。鍵入 mysql -uroot -p××××× 來進入sql控制台。

1.先創建數據集 create database databasename ;

2.use database databasename ;

3.建表(這里創建一個很簡單的,只有自增id,用戶名和密碼)

  create table user_info (                                                                                                                                                                                 
      id  int(11) not null auto_increment,
      username  varchar(30) not null,
      password  varchar(30) not null,
      primary key ( id )
   )ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

4.插入一條數據 insert into user_info values(1,'mtjss2','123456') ;

下面是node的部分

創建一個文件夾,比如叫myapp,在里面npm init之后就會也node_modules的依賴文件夾

用 npm install --save 安裝如下依賴

1.express

2.mysql

3.body-parser(用來解析post參數) 

由於express好像沒有自己的數據庫封裝,所以一般會新建models文件夾,然后寫數據庫的邏輯,如果只是想簡單測試可以直接寫在app.js中

這里舉例在models下有一個user.js的邏輯封裝類,暫時只有一個通過username獲取用戶信息的方法,其他可以以后加

   var mysql = require('mysql') ;                                                                                                                                                                           
   //connection config
   var connection = mysql.createConnection({
       host : 'localhost' ,
       user : 'root' ,
       password : '123456' ,
       database : 'my_box'
  });
   
  function User(user){
      this.username = user.username ;
      this.password = user.password ;
  }
  
  User.getUserbyUsername = function(username,callback){
  
      var selectSql = 'select * from user_info where username = ?' ;
     connection.query(selectSql,[username],function(err,res){
      ¦   if(err){
      ¦   ¦   console.log('getUserbyUsername err:' + err) ;
      ¦   ¦   return ;
      ¦   }
  
      ¦   console.log('Get name success') ;
      ¦   callback(err,res) ;
      }) ;
  } ;
  
  module.exports = User ;

再貼一下app.js暫時沒寫路由,就是對/和/reg方法的處理

   var mysql = require('mysql') ;                                                                                                                                                                           
   //connection config
   var connection = mysql.createConnection({
       host : 'localhost' ,
       user : 'root' ,
       password : '123456' ,
       database : 'my_box'
   });
   
  function User(user){
      this.username = user.username ;
      this.password = user.password ;
  }
  
  User.getUserbyUsername = function(username,callback){
  
      var selectSql = 'select * from user_info where username = ?' ;
      connection.query(selectSql,[username],function(err,res){
      ¦   if(err){
      ¦   ¦   console.log('getUserbyUsername err:' + err) ;
      ¦   ¦   return ;
      ¦   }
  
      ¦   console.log('Get name success') ;
      ¦   callback(err,res) ;
      }) ;
  } ;
  
  module.exports = User ;

index.html這個主頁面在views文件夾下,沒什么代碼,不過也貼一下

<!DOCTYPE html>
<html>
<head>
    <title>my box</title>
</head>
<body>
    <form action="/reg" method="post">
        <input type="text" name="username"/>
        <input type="submit" value="submit"/>
    </form>
</body>
</html>

這樣用 node app.js 啟動以后在瀏覽器里訪問 localhost:3000就行了,在input里輸入數據庫中的用戶名可以的得到那條數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM