nodejs简单应用四(数据库mysql操作)

nodejs简单应用四(数据库mysql操作)





var db = {
  //connection database
  client : null,
  TEST_DATABASE:'nodejs_mysql_db',
  TEST_TABLE:'test_table',
  connection:function(response){
                 
 
// console.log(require('mysql'));
/* var    Client    = require('mysql').Client; 
    client    = new Client();  
client.user      = 'root';
client.password  = 'root';
client.connected = true;
var    TEST_DATABASE    = dbname||'nodejs_mysql_db';  
var    TEST_TABLE       = tableName||'test_table';
console.log(client);
*/
//client.createClient({'host':'localhost','port':3306,'user':'root','password':'root'});   
                var Client = require('mysql').Client;  
var client = new Client();  
var TEST_DATABASE = 'nodejs_mysql_test';  
var TEST_TABLE = 'test';  
client.user = 'root';
client.database = 'nodejs_mysql_test';
client.password = 'root';
client.host='localhost';
//client.connect();  
console.log(client);
/*
  client.query('CREATE DATABASE '+TEST_DATABASE, function(err) {
                   if(err) {
                      console.log('create databse wrong'+err);
 return ;
  }   
  client.query('USE '+TEST_DATABASE);
  client.query(  
 'CREATE TABLE '+TEST_TABLE+  
 '(id INT(11) AUTO_INCREMENT,'+  
 'title VARCHAR(255),'+  
 'text TEXT,'+  
 'created DATETIME,'+  
 'PRIMARY KEY (id))'  
);  
});
*/
client.query(  
 'INSERT INTO '+TEST_TABLE+' '+  
 'SET title = ?, text = ?, created = ?',  
 ['super cool', 'this is a nice text', '2010-08-16 10:00:23']  
); 
var html = '<html><body><table>';
client.query(  
 'SELECT * FROM '+TEST_TABLE,  
 function selectCb(err, results, fields) {  
if (err) {  
 throw err;  


if(results.length > 0)
 {  
                        for(var i = 0;i<results.length;i++){
html +="<tr>";
var firstResult = results[i];
var str = ('<td>'+firstResult['id']+'</td>');
str+= ('<td>'+firstResult['title']+'</td>');
str+= ('<td>'+firstResult['text']+'</td>');
   html+=(str+"</tr>");
}

}
response.writeHead(200, {'Content-Type':'text/html'});
response.write(html);
response.end();
client.end();  


});

}  


};
exports.db = db;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Node.js连接MySQL数据库时,需要考虑一些安全性方面的问题。 首先,需要确保在连接数据库时使用合适的身份验证,比如使用用户名和密码。在配置连接参数时,应该避免在代码中直接硬编码敏感信息,比如数据库用户名和密码,而是应该使用环境变量或配置文件来获取这些敏感信息,以便于更好地管理和保护。这样可以防止恶意用户通过源代码获取敏感信息。 其次,使用预处理语句(Prepared Statements)可以有效防止SQL注入攻击。通过预处理语句,可以将用户提供的输入参数和SQL语句严格分离,确保输入参数不会直接嵌入到SQL语句中,避免了恶意用户通过输入特殊字符来破坏原本的SQL查询逻辑。 此外,可以使用连接池(Connection Pool)来管理数据库连接,减少每次请求创建和销毁连接的开销。连接池可以提供一定程度的保护,防止恶意用户通过大量的连续请求来破坏数据库的正常运行。 另外,限制数据库用户的权限也是一种提高数据库安全性的方法。根据应用的实际需求,给予数据库用户最小必需的权限,避免不必要的权限暴露数据库和数据的风险。 最后,持续的数据库安全监控是必要的。及时更新和修复数据库软件的漏洞,定期审查数据库操作日志,及时发现异常和安全问题。同时,对于敏感数据,可以在数据库层面进行加密处理,提高数据的安全性。 总之,使用Node.js连接MySQL数据库时,可以通过合适的身份验证、预处理语句、连接池、权限控制和安全监控等措施来提高数据库的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值