欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析node連接數(shù)據(jù)庫(express+mysql)

 更新時(shí)間:2015年11月30日 14:36:09   作者:mask_天俊  
Node是一個(gè)Javascript運(yùn)行環(huán)境(runtime)。實(shí)際上它是對Google V8引擎進(jìn)行了封裝。V8引 擎執(zhí)行Javascript的速度非??欤阅芊浅:?。Node對一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好

操作是在ubuntu系統(tǒng)的下環(huán)境,簡單記錄一下過程。

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

在數(shù)據(jù)庫里面我們需要?jiǎng)?chuàng)建一些東西。鍵入 mysql -uroot -p××××× 來進(jìn)入sql控制臺(tái)。

1.先創(chuàng)建數(shù)據(jù)集 create database databasename ;

2.use database databasename ;

3.建表(這里創(chuàng)建一個(gè)很簡單的,只有自增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.插入一條數(shù)據(jù) insert into user_info values(1,'mtjss2','123456') ;

下面是node的部分

創(chuàng)建一個(gè)文件夾,比如叫myapp,在里面npm init之后就會(huì)也node_modules的依賴文件夾

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

1.express

2.mysql

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

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

這里舉例在models下有一個(gè)user.js的邏輯封裝類,暫時(shí)只有一個(gè)通過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暫時(shí)沒寫路由,就是對/和/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這個(gè)主頁面在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 啟動(dòng)以后在瀏覽器里訪問 localhost:3000就行了,在input里輸入數(shù)據(jù)庫中的用戶名可以的得到那條數(shù)據(jù)。

ps:使用 Node.js 的優(yōu)勢和劣勢都有哪些?

Node.js優(yōu)點(diǎn):1、采用事件驅(qū)動(dòng)、異步編程,為網(wǎng)絡(luò)服務(wù)而設(shè)計(jì)。其實(shí)Javascript的匿名函數(shù)和閉包特性非常適合事件驅(qū)動(dòng)、異步編程。而且JavaScript也簡單易學(xué),很多前端設(shè)計(jì)人員可以很快上手做后端設(shè)計(jì)。2、Node.js非阻塞模式的IO處理給Node.js帶來在相對低系統(tǒng)資源耗用下的高性能與出眾的負(fù)載能力,非常適合用作依賴其它IO資源的中間層服務(wù)。3、Node.js輕量高效,可以認(rèn)為是數(shù)據(jù)密集型分布式部署環(huán)境下的實(shí)時(shí)應(yīng)用系統(tǒng)的完美解決方案。Node非常適合如下情況:在響應(yīng)客戶端之前,您預(yù)計(jì)可能有很高的流量,但所需的服務(wù)器端邏輯和處理不一定很多。

Node.js缺點(diǎn):1、可靠性低2、單進(jìn)程,單線程,只支持單核CPU,不能充分的利用多核CPU服務(wù)器。一旦這個(gè)進(jìn)程崩掉,那么整個(gè)web服務(wù)就崩掉了。

相關(guān)文章

  • Node.js API詳解之 dgram模塊用法實(shí)例分析

    Node.js API詳解之 dgram模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 dgram模塊用法,結(jié)合實(shí)例形式分析了Node.js API中dgram模塊基本功能、函數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-06-06
  • 如何利用nodejs自動(dòng)定時(shí)發(fā)送郵件提醒(超實(shí)用)

    如何利用nodejs自動(dòng)定時(shí)發(fā)送郵件提醒(超實(shí)用)

    這篇文章主要給大家介紹了關(guān)于如何利用nodejs實(shí)現(xiàn)自動(dòng)定時(shí)發(fā)送郵件提醒的相關(guān)資料,這個(gè)功能非常實(shí)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • nodejs連接mysql數(shù)據(jù)庫及基本知識(shí)點(diǎn)詳解

    nodejs連接mysql數(shù)據(jù)庫及基本知識(shí)點(diǎn)詳解

    這篇文章主要介紹了nodejs連接mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式總結(jié)分析了nodejs連接與操作mysql數(shù)據(jù)庫的相關(guān)模板、配置及mysql數(shù)據(jù)庫查詢、添加數(shù)據(jù)等操作技巧,需要的朋友可以參考下
    2018-03-03
  • NodeJS連接MySQL數(shù)據(jù)庫并進(jìn)行增刪改查操作詳解

    NodeJS連接MySQL數(shù)據(jù)庫并進(jìn)行增刪改查操作詳解

    本篇是使用NodeJS的模塊MySQL操作MySQL數(shù)據(jù)庫的基礎(chǔ)教程,連接MySQL數(shù)據(jù)庫并進(jìn)行增刪改查操作詳解,需要的朋友可以參考下
    2024-02-02
  • Node.js中的HTTP?Server對象與GET、POST請求

    Node.js中的HTTP?Server對象與GET、POST請求

    這篇文章介紹了Node.js中的HTTP?Server對象與GET、POST請求,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • nodejs遞歸文件夾獲取所有文件路徑實(shí)例

    nodejs遞歸文件夾獲取所有文件路徑實(shí)例

    這篇文章主要為大家介紹了nodejs遞歸文件夾獲取所有文件路徑實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解puppeteer使用代理

    詳解puppeteer使用代理

    這篇文章主要介紹了詳解puppeteer使用代理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node版本升級(jí)和降級(jí)之node版本管理工具nvm詳解

    Node版本升級(jí)和降級(jí)之node版本管理工具nvm詳解

    nvm是管理node版本的工具,一個(gè)電腦中可以安裝多個(gè)node版本,當(dāng)我們想使用哪個(gè)版本就切換成哪個(gè)版本,而nvm則是提供切換node版本的工具,這篇文章主要給大家介紹了關(guān)于Node版本升級(jí)和降級(jí)之node版本管理工具nvm的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • nodejs中express入門和基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)

    nodejs中express入門和基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)

    這篇文章給大家分享了關(guān)于學(xué)習(xí)nodejs中express入門和基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考下。
    2018-09-09
  • iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法

    iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法

    這篇文章主要介紹了iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法,本文給出了詳細(xì)的操作步驟以及操作命令,需要的朋友可以參考下
    2015-07-07

最新評論