ホームページ > 記事 > ウェブフロントエンド > Express は、ストレージ データベース (mysql) に写真をアップロードするためのフロントエンドとバックエンドの通信を実装します。絶対確実なチュートリアル (2)_JavaScript スキル
前回の記事で、Express がストレージ データベース (mysql) に写真をアップロードするためのフロントエンドとバックエンドの通信を実装するバカチュートリアル (1)
を紹介しました。
データベースはタイトルのようなもので、オープンソースの mysql をベースとして使用しており、解凍したバージョンをダウンロードしました (Baidu から入手しました。Baidu からダウンロードするだけです)。http://www.jb51 .net/article/ 76206.htm、インストール プロセス中に、my.ini ファイルの構成に関するチュートリアルを長い間探していたので、my.ini ファイルを投稿しました
[mysqld] basedir="D:/MySql" datadir="D:/MySql/data" port = 3306 socket = "/tmp/mysql.sock" [client] password = port = 3306 socket = "/tmp/mysql.sock" default-character-set = utf8
私の mysql が Mysql フォルダーにインストールされていることがわかります。独自のパスに従って変更できます。
次に、bin フォルダーで実行します
mysqld -install
mysql サービスをインストールし、サービスを開始します。
net start mysql
mysql を設定するための上記のチュートリアル リンクには、navicat for mysql (mysql 用のビジュアル ツール) のダウンロード アドレスと、コマンド ラインに入力したくない学生がダウンロードして使用できる登録情報が含まれています。のほうが便利です。
データベースに初めてログインします
mysql -uroot -p
パスワードなしで Enter を押すだけです。
(追記: 使用中にデータベースに手動で入力すると、中国語を入力するときに文字化けが発生します。解決策は次のとおりです。データベースを右クリックし、データベースのプロパティを選択し、文字セットを utf8 形式に変更します。図に示すように、最初のものを選択します:
)
次に、ノードを使用してデータベースに接続します。読者の皆様、お茶を淹れて続きをどうぞ~。
Felixge/node-mysql は、JavaScript を使用して純粋な Nodejs で実装された MySQL クライアント プログラムです。 felixge/node-mysql は、MySQL 上の Nodejs の基本操作をカプセル化しており、100% MIT パブリック ライセンスです。
プロジェクトアドレス: https://github.com/felixge/node-mysql
プロジェクトにnode-mysqlをインストールし、昨日作成したmyappフォルダーに入り、次を実行します:
npm install mysql
次に、公式 Web サイトのサンプルをテストして変更し、プロジェクトに追加し、routes/index.js を変更して、express を再起動します
var express = require('express'); var router = express.Router();var mysql = require('mysql'); //调用MySQL模块 router.get('/', function(req, res) { res.render('index', { title: '孟星魂' }); //创建一个connection var connection = mysql.createConnection({ host: '127.0.0.1', //主机 user: 'root', //MySQL认证用户名 password: '111', //MySQL认证用户密码,没有测试没有密码时为空是否能登陆,不能的话设置下登陆密码 port: '3306', //端口号 database: 'nodesample' }); //创建一个connection connection.connect(function(err) { if (err) { console.log('[query] - :' + err); return; } console.log('[connection connect] succeed!'); }); //执行SQL语句 connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { if (err) { console.log('[query] - :' + err); return; } console.log('The solution is: ', rows[0].solution); }); //关闭connection connection.end(function(err) { if (err) { return; } console.log('[connection end] succeed!'); }); }); module.exports = router;
ページを開いた後のコマンド表示効果は次のとおりです:
テストは成功しました! ! 、以下にテストデータベースを作成します
CREATE DATABASE IF NOT EXISTS nodesample CHARACTER SET UTF8; USE nodesample; SET FOREIGN_KEY_CHECKS=0; DROP TABLE IF EXISTS `userinfo`; CREATE TABLE `userinfo` ( `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `UserName` varchar(64) NOT NULL COMMENT '用户名', `UserPass` varchar(64) NOT NULL COMMENT '用户密码', PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
このコードは Navicat で直接実行でき、ツール、コンソールをクリックし、貼り付けて Enter キーを押すだけです。
次に、データベースにデータを追加し、次のように Route/index.js を変更します
var express = require('express'); var router = express.Router(); var mysql = require('mysql'); //调用MySQL模块 router.get('/', function(req, res) { res.render('index', { title: '孟星魂' }); //创建一个connection var connection = mysql.createConnection({ host: '127.0.0.1', //主机 user: 'root', //MySQL认证用户名 password: '111', //MySQL认证用户密码 port: '3306', //端口号 database: 'nodesample' }); //创建一个connection connection.connect(function(err) { if (err) { console.log('[query] - :' + err); return; } console.log('[connection connect] succeed!'); }); //执行SQL语句 var userAddSql = 'INSERT INTO userinfo(Id,UserName,UserPass) VALUES(0,?,?)'; var userAddSql_Params = ['Wilson', 'abcd']; //增 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('-----------------------------------------------------------------\n\n'); }); //关闭connection connection.end(function(err) { if (err) { return; } console.log('[connection end] succeed!'); }); });
module.exports = ルーター;
Express を再起動し、ページを更新すると、コマンド プロンプトが表示されます:
データベース表示:
これで、誰でもデータベースを操作できるようになりました。基本的な操作については、http://www.cnblogs.com/zhongweiv/p/nodejs_mysql.html#mysql_mod を参照して追加事項を確認してください。 、削除と修正がすべて紹介されます。
以下は、皆さんがアップロードした画像保管データベースを紹介するはずですが、それらを解決する前にいくつかの落とし穴に遭遇しました。最も興味深い部分は明日に残します~、
。
主な問題はルーティングです。現時点では、フロントエンドにデータを送信することは不可能なので、皆さんおやすみなさい。