ホームページ >ウェブフロントエンド >jsチュートリアル >ノード接続データベース(express mysql)_node.jsの簡単な分析
操作はubuntu系の環境で行い、その過程を簡単に記録します。
最初に apt-get を使用してデータベースをインストールし、コマンド sudo apt-get install mysql-server を入力して Enter キーを最後まで押し、インターフェイスにデータベースの root パスワードを設定します
データベースに何かを作成する必要があります。 「mysql -uroot -p×××××」と入力して SQL コンソールに入ります。
1. まず、データセットを作成します
2.データベースデータベース名を使用します;
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. user_info 値 (1,'mtjss2','123456') にデータを挿入します。
以下はノードの部分です
myapp などのフォルダーを作成し、npm init の後に、node_modules の依存関係フォルダーが含まれます
npm install --save を使用して次の依存関係をインストールします
1.特急
2.mysql
3.body-parser (ポストパラメータの解析に使用)
Express には独自のデータベース パッケージがないようなので、通常は新しいモデル フォルダーを作成してデータベースのロジックを記述します。簡単なテストだけが必要な場合は、app.js に直接記述できます。
たとえば、ここではモデルの下にある user.js の論理カプセル化クラスを示します。現時点では、ユーザー名を使用してユーザー情報を取得するメソッドは 1 つだけです。他のメソッドは後で追加できます。
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 にアクセスし、入力にデータベースのユーザー名を入力してデータを取得します。
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 サービス全体がクラッシュします。