首頁 >web前端 >js教程 >淺析node連線資料庫(express mysql)_node.js

淺析node連線資料庫(express mysql)_node.js

WBOY
WBOY原創
2016-05-16 15:28:512475瀏覽

操作是在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裡輸入資料庫中的使用者名稱可以的得到那條資料。

ps:使用 Node.js 的優點和缺點有哪些?

Node.js優點:1、採用事件驅動、非同步編程,為網路服務而設計。其實Javascript的匿名函數和閉包特性非常適合事件驅動、非同步程式設計。而且JavaScript也簡單易學,很多前端設計人員可以很快上手做後端設計。 2.Node.js非阻塞模式的IO處理為Node.js帶來在相對低系統資源耗用下的高效能與出眾的負載能力,非常適合用來作為依賴其它IO資源的中間層服務。 3.Node.js輕量高效,可以認為是資料密集型分散式部署環境下的即時應用系統的完美解決方案。 Node非常適合以下情況:在回應客戶端之前,您預期可能會有很高的流量,但所需的伺服器端邏輯和處理不一定很多。

Node.js缺點:1、可靠性低2、單一進程,單線程,只支援單核心CPU,無法充分的利用多核心CPU伺服器。一旦這個進程崩掉,那麼整個web服務就崩掉了。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn