Express は、ストレージ データベース (mysql) に写真をアップロードするためのフロントエンドとバックエンドの通信を実装します。絶対確実なチュートリアル (2)_JavaScript スキル

WBOY
リリース: 2016-05-16 15:26:26
オリジナル
2587 人が閲覧しました

前回の記事で、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 を参照して追加事項を確認してください。 、削除と修正がすべて紹介されます。

以下は、皆さんがアップロードした画像保管データベースを紹介するはずですが、それらを解決する前にいくつかの落とし穴に遭遇しました。最も興味深い部分は明日に残します~、
。 主な問題はルーティングです。現時点では、フロントエンドにデータを送信することは不可能なので、皆さんおやすみなさい。

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