지난 기사에서 소개해드린 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 폴더에 my mysql이 설치되어 있는 것을 볼 수 있으며, 본인의 경로에 맞게 수정하시면 됩니다.
그런 다음 bin 폴더에서 실행하세요
mysqld -install
mysql 서비스를 설치한 후 서비스를 시작합니다.
net start mysql
위의 mysql 구성 튜토리얼 링크에는 navicat for mysql(mysql용 시각적 도구)의 다운로드 주소와 등록 정보가 포함되어 있으며, 명령줄 입력을 원하지 않는 학생들도 다운로드하여 사용할 수 있습니다. 더 편리합니다.
처음으로 데이터베이스에 로그인
mysql -uroot -p
비밀번호 없이 Enter만 누르면 됩니다.
(ps: 사용 중에 데이터베이스를 수동으로 입력하면 중국어를 입력할 때 문자가 깨져 나오는 현상이 발생합니다. 해결 방법은 다음과 같습니다. 데이터베이스를 마우스 오른쪽 버튼으로 클릭한 다음 데이터베이스 속성을 선택하고 문자 집합을 utf8 형식으로 수정하고, 그림과 같이 첫 번째 항목을 선택하세요.
)
다음으로 노드를 사용하여 데이터베이스에 연결하겠습니다. 독자 여러분, 차 한잔 하시면서 계속 하시면 됩니다~.
Felixge/node-mysql은 javascript를 사용하여 순수 nodejs로 구현된 MySQL 클라이언트 프로그램입니다. felixge/node-mysql은 100% MIT 공개 라이선스인 MySQL에서 Nodejs의 기본 작업을 캡슐화합니다.
프로젝트 주소: 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에서 직접 실행할 수 있습니다. 도구를 클릭하고 콘솔을 클릭한 후 붙여넣고 Enter를 누르기만 하면 됩니다.
다음으로 데이터베이스에 데이터를 추가하고 다음과 같이 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 = 라우터;
Express를 다시 시작하고 페이지를 새로 고치면 명령 프롬프트가 표시됩니다.
데이터베이스 표시:
자, 이제 누구나 데이터베이스를 운영할 수 있습니다. 몇 가지 기본 작업은 http://www.cnblogs.com/zhongweiv/p/nodejs_mysql.html#mysql_mod를 참조하여 추가 사항을 확인하세요. , 삭제 및 수정이 모두 도입되었습니다.
다음은 모두가 업로드한 이미지 저장 데이터베이스를 소개해야 하는데, 이를 해결하기 전에 몇 가지 함정에 직면했습니다. 가장 흥미로운 부분은 내일 남겨두겠습니다~,
가장 큰 문제는 라우팅입니다. 현재는 프론트 엔드로 데이터를 보낼 수 없으므로, 모두들 잘자요~.