Nodejs を使用して mysql に接続し、基本的な操作を実装します

亚连
リリース: 2018-06-13 16:18:30
オリジナル
2847 人が閲覧しました

この記事では、Nodejs が mysql に接続し、追加、削除、変更、クエリの操作を実現する方法を主に紹介し、nodejs の mysql データベースへの接続、mysql データベースの作成、nodejs の mysql の追加、削除、変更、クエリも分析します。特定の実装スキルが必要な友人は参照してください

この記事では、Nodejs が mysql に接続し、追加、削除、変更、クエリ操作を実装する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1.

nodejs チュートリアルを準備します。そのほとんどは例として mongodb を使用します。ただし、mongodb にはいくつかの制限があり、公式 Web サイトに記載されています。 MySQL の使用経験はまだあるので、MySQL を使用する予定です。まずは研究に集中してください。 node-mysql は、現在、node で最も人気のある mysql ドライバーです。非同期コールバック メソッドには実際には多くの落とし穴があるため、最初はこれを使用しました。

次のプロジェクトのパッケージ名はmysql、バージョンはmysql@ 2.5.4です

まず、以下に示すコードを説明します。すべて以下のコードで始まり、後では説明しません

var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});
ログイン後にコピー

の意味コードは非常に簡単です。さらに詳しく知りたい場合は、上記の公式 Web サイトで確認できます。ホストやユーザーなどの設定は、MySQL データベース アプリケーションを作成したことがある方には明らかなはずです。対応するパラメータはご自身で変更してください。次のコードは、データベース「my_news_test」に node_use というテーブルがあることを前提としています。このテーブルには 3 つの属性

id: 自動インクリメントされた主キー
name: 固有の制限付き
age: 年齢 があります。

MySQL のテスト MySQL バージョン: 5.5

2. データベースを構築し、5 つのレコードを挿入します

Source Database    : my_news_test
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for node_user
-- ----------------------------
DROP TABLE IF EXISTS `node_user`;
CREATE TABLE `node_user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(30) DEFAULT NULL,
 `age` int(8) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of node_user
-- ----------------------------
INSERT INTO `node_user` VALUES ('1', 'admin', '32');
INSERT INTO `node_user` VALUES ('2', 'dans88', '45');
INSERT INTO `node_user` VALUES ('3', '张三', '35');
INSERT INTO `node_user` VALUES ('4', 'ABCDEF', '88');
INSERT INTO `node_user` VALUES ('5', '李小二', '65');
ログイン後にコピー

3. まず環境をテストします

1 まず、nodejs の mysql パッケージをインストールする必要があります。

D:\User\myappejs4>npm install mysql
mysql@2.5.4 node_modules\mysql
├── require-all@0.0.8
├── bignumber.js@1.4.1
└── readable-stream@1.1.13 (inherits@2.0.1, string_decoder@0.10.31, isarray@0
.0.1, core-util-is@1.0.1)
ログイン後にコピー

2. Nodejs と mysql の間の対話用のコードを作成します

//mysql.js
//首先需要安装nodejs 的mysql包
//npm install mysql
//编写nodejs与mysql交互的代码
var mysql = require('mysql');
var TEST_DATABASE = 'my_news_test';
var TEST_TABLE = 'node_user';
//创建连接
var client = mysql.createConnection({
 user: 'root',
 password: 'root123',
});
client.connect();
client.query("use " + TEST_DATABASE);
client.query(
 'SELECT * FROM '+TEST_TABLE,
 function selectCb(err, results, fields) {
  if (err) {
   throw err;
  }
    if(results)
   {
     for(var i = 0; i < results.length; i++)
     {
       console.log("%d\t%s\t%s", results[i].id, results[i].name, results[i].age);
     }
   }
  client.end();
 }
);
ログイン後にコピー

3. 実行結果

D:\User\myappejs4>node mysqltest.js
1    admin  32
2    dans88 45
3    张三  35
4    ABCDEF  88
5    李小二 65
ログイン後にコピー

4. Node.js と MySQL の追加、削除、変更、およびチェック操作を組み合わせます1

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userAddSql = 'INSERT INTO node_user(id,name,age) VALUES(0,?,?)';
var userAddSql_Params = ['Wilson', 55];
//增 add
connection.query(userAddSql,userAddSql_Params,function (err, result) {
    if(err){
     console.log('[INSERT ERROR] - ',err.message);
     return;
    }
    console.log('-------INSERT----------');
    //console.log('INSERT ID:',result.insertId);
    console.log('INSERT ID:',result);
    console.log('#######################');
});
connection.end();
ログイン後にコピー

を以下のように実行します

D:\User\myappejs4>node mysqltestadd.js
-------INSERT----------
INSERT ID: { fieldCount: 0,
 affectedRows: 1,
 insertId: 6,
 serverStatus: 2,
 warningCount: 0,
 message: &#39;&#39;,
 protocol41: true,
 changedRows: 0 }
#######################
ログイン後にコピー

2.

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userModSql = 'UPDATE node_user SET name = ?,age = ? WHERE id = ?';
var userModSql_Params = ['Hello World',99,7];
//改 up
connection.query(userModSql,userModSql_Params,function (err, result) {
  if(err){
     console.log('[UPDATE ERROR] - ',err.message);
     return;
  }
 console.log('----------UPDATE-------------');
 console.log('UPDATE affectedRows',result.affectedRows);
 console.log('******************************');
});
connection.end();
ログイン後にコピー

を変更すると、実行結果は次のようになります

D:\User\myappejs4>node mysqltest_up.js
----------UPDATE-------------
UPDATE affectedRows 1
******************************
ログイン後にコピー

実行結果は次のようになります

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userGetSql = 'SELECT * FROM node_user';
//查 query
connection.query(userGetSql,function (err, result) {
    if(err){
     console.log('[SELECT ERROR] - ',err.message);
     return;
    }
    console.log('---------------SELECT----------------');
    console.log(result);
    console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
});
connection.end();
ログイン後にコピー

4 . 削除操作

D:\User\myappejs4>node mysqltest_query.js
---------------SELECT----------------
[ { id: 1, name: &#39;admin&#39;, age: 32 },
 { id: 2, name: &#39;dans88&#39;, age: 45 },
 { id: 3, name: &#39;张三&#39;, age: 35 },
 { id: 4, name: &#39;ABCDEF&#39;, age: 88 },
 { id: 5, name: &#39;李小二&#39;, age: 65 },
 { id: 6, name: &#39;Wilson&#39;, age: 55 } ]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ログイン後にコピー

をあなたのために整理しました 皆さん、今後皆さんのお役に立てれば幸いです。

関連記事:

vue で静的リソースをパッケージ化する方法

Koa2 での async&await の使用法は何ですか?

zTreeツリープラグインで全国の5レベル地域のクリックロードを実装する方法

node+expressのパーソナライズされたチャットルームを実装するにはどうすればよいですか?

以上がNodejs を使用して mysql に接続し、基本的な操作を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート