首頁  >  文章  >  web前端  >  Express實作前端後端通訊上傳圖片之儲存資料庫(mysql)傻瓜式教學(二)_javascript技巧

Express實作前端後端通訊上傳圖片之儲存資料庫(mysql)傻瓜式教學(二)_javascript技巧

WBOY
WBOY原創
2016-05-16 15:26:262554瀏覽

上篇文章跟大家介紹了express實作前端後端通訊上傳圖片之儲存資料庫(mysql)傻瓜教學(一)

資料庫如標題,使用開源的mysql為基礎,我是下載的解壓縮版本(自行百度就有,用百度下載的就行),配置過程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

直接回車,沒有密碼。

(ps:我在使用中手動填寫資料庫時,輸入中文時會有亂碼問題,解決方案如下:右鍵一個資料庫,然後選擇資料庫屬性,修改字元集為utf8格式,整理選擇第一個就行,如圖:
        )

  下面就要使用node連接資料庫了。各位看官可以泡杯茶繼續~。

  felixge/node-mysql是一個純nodejs的一個用javascript實作的MySQL客戶端程式。 felixge/node-mysql封裝了Nodejs對MySQL的基本操作,100% MIT公共授權。

  專案網址:https://github.com/felixge/node-mysql

  在專案中安裝node-mysql,進入昨天建立好的myapp資料夾,運行:

npm install mysql

  接下來進行測試,把官網的例子修改下,放到咱們的專案裡面,修改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裡面運行,點擊工具,console,粘貼,回車就好了。
  接下來往資料庫中新增一條數據,修改routes/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 = router;

  重啟express,重新整理頁面,命令符號顯示:

  資料庫顯示:

  好了,現在大家已經可以操作資料庫了,基本的一些操作請參考http://www.cnblogs.com/zhongweiv/p/nodejs_mysql.html#mysql_mod,增刪改查裡面都有介紹。

   後面應該是介紹大家上傳的圖片儲存資料庫的,但遇到了一些坑,才解決,最精彩的留在明天~,
  主要是路由的問題,主頁請求了模板,這個時候是無法在往前端發送數據的,所以會用到express的中間件,大家晚安~。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn