Node.js 连接 MySQL 并进行数据库操作

Node.js是一套用来编写高性能网络服务器的JavaScript工具包

 

代码片段(6)

[代码] 安装 node-mysql

1 $ npm install mysql

[代码] 创建测试表

1//数据库名 NodeSample
2   
3 CREATE TABLE `NodeSample`.`MyTable` (
4   `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
5   `firstname` VARCHAR( 20 ) NOT NULL ,
6   `lastname` VARCHAR( 20 ) NOT NULL ,
7   `message` TEXT NOT NULL
8) ENGINE = MYISAM ;

[代码] 连接数据库

01 var sys = require('sys');
02    
03 var Client = require('mysql').Client;
04 var client = new Client();
05    
06 client.user = 'someuser';
07 client.password = 'password';
08    
09 client.connect(function(error, results) {
10   if(error) {
11     console.log('Connection Error: ' + error.message);
12     return;
13   }
14   console.log('Connected to MySQL');
15});

[代码] 打开数据库

01 ClientConnectionReady = function(client)
02{
03     client.query('USE NodeSample', function(error, results) {
04         if(error) {
05             console.log('ClientConnectionReady Error: ' + error.message);
06             client.end();
07             return;
08         }
09     });
10};

[代码] 完成数据库操作程序

01 var sys = require('sys');
02    
03 var Client = require('mysql').Client;
04 var client = new Client();
05    
06 client.user = 'someuser';
07 client.password = 'password';
08    
09 console.log('Connecting to MySQL...');
10    
11 client.connect(function(error, results) {
12   if(error) {
13     console.log('Connection Error: ' + error.message);
14     return;
15   }
16   console.log('Connected to MySQL');
17   ClientConnectionReady(client);
18});
19    
20 ClientConnectionReady = function(client)
21{
22     client.query('USE NodeSample', function(error, results) {
23         if(error) {
24             console.log('ClientConnectionReady Error: ' + error.message);
25             client.end();
26             return;
27         }
28         ClientReady(client);
29     });
30};
31    
32 ClientReady = function(client)
33{
34   var values = ['Chad', 'Lung', 'Hello World'];
35   client.query('INSERT INTO MyTable SET firstname = ?, lastname = ? , message = ?', values,
36     function(error, results) {
37       if(error) {
38         console.log("ClientReady Error: " + error.message);
39         client.end();
40         return;
41       }
42       console.log('Inserted: ' + results.affectedRows + ' row.');
43       console.log('Id inserted: ' + results.insertId);
44     }
45   );
46   GetData(client);
47}
48    
49 GetData = function(client)
50{
51   client.query(
52     'SELECT * FROM MyTable',
53     function selectCb(error, results, fields) {
54       if (error) {
55           console.log('GetData Error: ' + error.message);
56           client.end();
57           return;
58       }
59       // Uncomment these if you want lots of feedback
60       //console.log('Results:');
61       //console.log(results);
62       //console.log('Field metadata:');
63       //console.log(fields);
64       //console.log(sys.inspect(results));
65    
66       if(results.length > 0)
67       {
68         var firstResult = results[0];
69         console.log('First Name: ' + firstResult['firstname']);
70         console.log('Last Name: ' + firstResult['lastname']);
71         console.log('Message: ' + firstResult['message']);
72       }
73   });
74    
75   client.end();
76   console.log('Connection closed');
77};

[图片] 程序执行结果

08090011_cAIH.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值