淺析node連接數(shù)據(jù)庫(express+mysql)
操作是在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控制臺。
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之后就會也node_modules的依賴文件夾
用 npm install --save 安裝如下依賴
1.express
2.mysql
3.body-parser(用來解析post參數(shù))
由于express好像沒有自己的數(shù)據(jù)庫封裝,所以一般會新建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ù)就崩掉了。
- Express實(shí)現(xiàn)前端后端通信上傳圖片之存儲數(shù)據(jù)庫(mysql)傻瓜式教程(二)
- Express實(shí)現(xiàn)前端后端通信上傳圖片之存儲數(shù)據(jù)庫(mysql)傻瓜式教程(一)
- MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”解決方法
- node基于express框架操作Mysql數(shù)據(jù)庫的步驟
- 解決大于5.7版本mysql的分組報(bào)錯(cuò)Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated
- Node.js+Express+Mysql 實(shí)現(xiàn)增刪改查
- Express項(xiàng)目中操作MySQL的步驟
相關(guān)文章
詳解nodejs微信公眾號開發(fā)——2.自動(dòng)回復(fù)
這篇文章主要介紹了詳解nodejs微信公眾號開發(fā)——2.自動(dòng)回復(fù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04使用nvm安裝node?v12.22.12時(shí)遇到的問題解決
本文介紹了使用nvm安裝node?v12.22.12時(shí)遇到的問題解決,解決了上手動(dòng)下載和安裝npm以解決版本不匹配的問題,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12express框架通過ejs模板渲染輸出頁面實(shí)例分析
這篇文章主要介紹了express框架通過ejs模板渲染輸出頁面的方法,結(jié)合實(shí)例形式分析了express框架使用ejs模版引擎渲染輸出的相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2023-05-05Nodejs在局域網(wǎng)配置https訪問的實(shí)現(xiàn)方法
做一個(gè)局域網(wǎng)WebRTC視頻聊天系統(tǒng),需要用到HTTPS。因此,配置Node.js使其支持HTTPS訪問。這篇文章主要介紹了Nodejs在局域網(wǎng)配置https訪問的實(shí)現(xiàn)方法,需要的朋友可以參考下2020-10-10