>  기사  >  웹 프론트엔드  >  Nodejs를 사용하여 mysql에 연결하여 기본 작업 구현

Nodejs를 사용하여 mysql에 연결하여 기본 작업 구현

亚连
亚连원래의
2018-06-13 16:18:302787검색

이 글에서는 Nodejs가 mysql에 연결하여 추가, 삭제, 수정, 쿼리하는 작업을 구현하는 방법을 주로 소개합니다. 또한 nodejs의 mysql 데이터베이스 연결, mysql 데이터베이스 생성 및 nodejs의 mysql 추가, 삭제, 수정 및 쿼리도 분석합니다. 구체적인 구현 기술이 필요한 친구는 참고하면 됩니다

이 글에서는 Nodejs가 mysql에 연결하여 추가, 삭제, 수정, 쿼리 작업을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. 대부분 mongodb를 예로 사용하는

nodejs 튜토리얼을 준비하세요. 그러나 mongodb에는 공식 웹사이트에 명시된 몇 가지 제한 사항이 있습니다. 아직 MySQL을 사용해 본 경험이 있기 때문에 MySQL을 사용할 계획입니다. 먼저 연구에 집중하세요. node-mysql은 현재 node.js에서 가장 인기 있는 mysql 드라이버입니다. 비동기 콜백 방식은 정말 함정이 많기 때문에 처음에는 이 방식을 사용했습니다.

다음 프로젝트의 패키지 이름은 mysql, 버전은 mysql@ 2.5.4

먼저 아래 코드를 설명해주세요. 모두 다음 코드로 시작하므로 나중에 설명하지 않겠습니다

var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});

의 의미 코드는 매우 간단합니다. 더 자세히 알고 싶다면 위의 공식 웹사이트에서 확인할 수 있습니다. 호스트, 사용자 등의 구성은 MySQL 데이터베이스 애플리케이션을 작성한 사람에게 명확해야 합니다. 해당 매개변수를 직접 수정하십시오. 다음 코드는 데이터베이스 "my_news_test"에 node_use라는 테이블이 있다고 가정합니다. 이 테이블에는 3가지 속성

id: 자동 증가 기본 키
name: 이름, 고유 제한
age: age가 있습니다.

MySQL 테스트 MySQL 버전: 5.5

2. 데이터베이스 구축 및 5개의 레코드 삽입

Source Database    : my_news_test
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for node_user
-- ----------------------------
DROP TABLE IF EXISTS `node_user`;
CREATE TABLE `node_user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(30) DEFAULT NULL,
 `age` int(8) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of node_user
-- ----------------------------
INSERT INTO `node_user` VALUES ('1', 'admin', '32');
INSERT INTO `node_user` VALUES ('2', 'dans88', '45');
INSERT INTO `node_user` VALUES ('3', '张三', '35');
INSERT INTO `node_user` VALUES ('4', 'ABCDEF', '88');
INSERT INTO `node_user` VALUES ('5', '李小二', '65');

3. 먼저 환경 테스트

1 먼저 nodejs의 mysql 패키지를 설치해야 합니다.

D:\User\myappejs4>npm install mysql
mysql@2.5.4 node_modules\mysql
├── require-all@0.0.8
├── bignumber.js@1.4.1
└── readable-stream@1.1.13 (inherits@2.0.1, string_decoder@0.10.31, isarray@0
.0.1, core-util-is@1.0.1)

2. nodejs와 mysql

//mysql.js
//首先需要安装nodejs 的mysql包
//npm install mysql
//编写nodejs与mysql交互的代码
var mysql = require('mysql');
var TEST_DATABASE = 'my_news_test';
var TEST_TABLE = 'node_user';
//创建连接
var client = mysql.createConnection({
 user: 'root',
 password: 'root123',
});
client.connect();
client.query("use " + TEST_DATABASE);
client.query(
 'SELECT * FROM '+TEST_TABLE,
 function selectCb(err, results, fields) {
  if (err) {
   throw err;
  }
    if(results)
   {
     for(var i = 0; i < results.length; i++)
     {
       console.log("%d\t%s\t%s", results[i].id, results[i].name, results[i].age);
     }
   }
  client.end();
 }
);

3. 실행 결과

D:\User\myappejs4>node mysqltest.js
1    admin  32
2    dans88 45
3    张三  35
4    ABCDEF  88
5    李小二 65

4. Node.js와 MySQL의 추가, 삭제, 수정 및 확인 작업

1 .Add

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userAddSql = 'INSERT INTO node_user(id,name,age) VALUES(0,?,?)';
var userAddSql_Params = ['Wilson', 55];
//增 add
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('#######################');
});
connection.end();

다음과 같이 실행합니다.

D:\User\myappejs4>node mysqltestadd.js
-------INSERT----------
INSERT ID: { fieldCount: 0,
 affectedRows: 1,
 insertId: 6,
 serverStatus: 2,
 warningCount: 0,
 message: &#39;&#39;,
 protocol41: true,
 changedRows: 0 }
#######################

2. 변경

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userModSql = 'UPDATE node_user SET name = ?,age = ? WHERE id = ?';
var userModSql_Params = ['Hello World',99,7];
//改 up
connection.query(userModSql,userModSql_Params,function (err, result) {
  if(err){
     console.log('[UPDATE ERROR] - ',err.message);
     return;
  }
 console.log('----------UPDATE-------------');
 console.log('UPDATE affectedRows',result.affectedRows);
 console.log('******************************');
});
connection.end();

실행 결과는 다음과 같습니다.

D:\User\myappejs4>node mysqltest_up.js
----------UPDATE-------------
UPDATE affectedRows 1
******************************

3. 실행 결과는 다음과 같습니다

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : &#39;127.0.0.1&#39;,
 user   : &#39;root&#39;,
 password : &#39;root123&#39;,
 port: &#39;3306&#39;,
 database: &#39;my_news_test&#39;,
});
connection.connect();
var userGetSql = 'SELECT * FROM node_user';
//查 query
connection.query(userGetSql,function (err, result) {
    if(err){
     console.log('[SELECT ERROR] - ',err.message);
     return;
    }
    console.log('---------------SELECT----------------');
    console.log(result);
    console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
});
connection.end();

4 . 삭제 작업은 위에서

D:\User\myappejs4>node mysqltest_query.js
---------------SELECT----------------
[ { id: 1, name: &#39;admin&#39;, age: 32 },
 { id: 2, name: &#39;dans88&#39;, age: 45 },
 { id: 3, name: &#39;张三&#39;, age: 35 },
 { id: 4, name: &#39;ABCDEF&#39;, age: 88 },
 { id: 5, name: &#39;李小二&#39;, age: 65 },
 { id: 6, name: &#39;Wilson&#39;, age: 55 } ]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

정리했습니다 여러분, 앞으로 모든 분들께 도움이 되길 바랍니다.

관련 기사:

vue에서 정적 리소스를 패키징하는 방법

Koa2에서 async&await의 사용법은 무엇입니까?

zTree 트리 플러그인에서 전국 5단계 지역의 클릭 로딩을 구현하는 방법

노드+익스프레스 개인화 대화방을 구현하는 방법은 무엇입니까?

위 내용은 Nodejs를 사용하여 mysql에 연결하여 기본 작업 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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