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

來源:互聯網
上載者:User

操作是在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服務就崩掉了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.