>  기사  >  웹 프론트엔드  >  Express는 스토리지 데이터베이스(mysql)에 사진을 업로드하기 위해 프런트엔드 및 백엔드 통신을 구현합니다. 완벽한 튜토리얼(2)_javascript 기술

Express는 스토리지 데이터베이스(mysql)에 사진을 업로드하기 위해 프런트엔드 및 백엔드 통신을 구현합니다. 완벽한 튜토리얼(2)_javascript 기술

WBOY
WBOY원래의
2016-05-16 15:26:262554검색

지난 기사에서 소개해드린 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를 참조하여 추가 사항을 확인하세요. , 삭제 및 수정이 모두 도입되었습니다.

다음은 모두가 업로드한 이미지 저장 데이터베이스를 소개해야 하는데, 이를 해결하기 전에 몇 가지 함정에 직면했습니다. 가장 흥미로운 부분은 내일 남겨두겠습니다~,
가장 큰 문제는 라우팅입니다. 현재는 프론트 엔드로 데이터를 보낼 수 없으므로, 모두들 잘자요~.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.