本文实例讲述了nodejs简单访问及操作mysql数据库的方法。分享给大家供大家参考,具体如下:
var
mysql
=
require('mysql');
//调用MySQL模块
mysql模块要安装
$
npm
install
mysql
//创建一个connection
var
connection
=
mysql.createConnection({
host
:
'127.0.0.1',
//主机
user
:
'root',
//MySQL认证用户名
password
:
'',
//MySQL认证用户密码
port:
'3306',
//端口号
database:''
//数据库名
});
//创建一个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!');
});
注:nodejs在操作数据库的时候不用设置数据库的编码格式
set
names
utf8
希望本文所述对大家nodejs程序设计有所帮助。
您可能感兴趣的文章:nodejs连接mysql数据库简单封装示例-mysql模块nodejs进阶(6)—连接MySQL数据库示例nodejs实现的连接MySQL数据库功能示例Nodejs连接mysql并实现增、删、改、查操作的方法详解nodeJs实现基于连接池连接mysql的方法示例nodejs中操作mysql数据库示例NodeJS链接MySql数据库的操作方法Nodejs使用mysql模块之获得更新和删除影响的行数的方法NodeJs使用Mysql模块实现事务处理实例nodejs连接mysql数据库及基本知识点详解
⑵ 菜鸟教程中的nodejs连接mysql数据库教程存在sql注入问题吗
是否有漏洞与代码有关,与此无关
其中主流的连接MySQL的方式是用mysql或者mysql2包,它们只是提供了调用驱动的api。很多框架中包括egg,nest都是基于此封装的。
但这不是SQL注入的关键,它只是一种连接方式。它只管连接,不管其他的,存不存在SQL注入完全靠写代码的人本身啊。
一句脚本本没有问题(知道不让直接放sql的,也是放注入),但是你如果让SQL变成由用户输入拼接而成,那就存在SQL注入的风险。
你应该去了解SQL注入的原理,然后进行防患,网络就能找到,然后可以用ORM,一般都对输入做了处理,还能避免直接写SQL(但其实难的地方还得自己写)。
有不理解可以追问。
⑶ JavaScript获取mysql数据库里面的数据需要哪些技术的支持
从技术上而言,JavaScript是可以直接访问mysql数据库的,但浏览器出于安全考虑(因为这样一来数据库的登录信息就完全暴露在所有用户的眼里了,别人就可以绕开你的程序直接访问数据库,甚至可以任意增删改你的数据),都对这个功能进行了非常严格的限制(也就是说其实还是可以访问的,但必须把浏览器的安全等级调到最低最低!),所以这种需求在实际应用中很难实现。
这样就需要一个中间程序,放在网络服务器中,html(含JavaScript)向这个中间程序发送请求,由它去mysql数据库中获取数据,再把数据发送回html。这类似于点外卖,你在网络上点餐,跑腿小哥就会把你点的食物送到你手上。对于浏览器而言,发送请求和返回数据的过程都是安全的(对数据库的所有操作都发生在网络服务器中,网页用户是看不到的),这样就没有限制了。
这个中间程序的开发语言(或者说架构)一般是PHP、ASP、ASP.NET、JSP等,也就是通常所说的“后台程序”。
jQuery则是JavaScript的一个框架(或者说插件、函数库),它是把JavaScript的一些复杂的操作封装成简单的、容易操作的函数和对象,所以jQuery本质上还是JavaScript。如果把JavaScript比作普通的面条,那么jQuery就好比是方便面,它帮你把做面的一些关键步骤先做好了,然后你只需要几个简单的操作就可以吃到嘴里了。
ajax则是JavaScript(含jQuery)向服务器的中间程序(即上面所说的)发送请求并处理返回数据的一种技术,可以实现网页未刷新的情况下实时动态更新网页上的数据。它实际上也仍然是包含在JavaScript范畴内的。
xml是网络间数据传输的一种数据格式,但现在更流行的则是json。
所以实际的网络数据访问流程是:
html+JavaScript(jquery)
↓↑
PHP(ASP、ASP.NET、JSP)
↓↑
MySql
在这其中JavaScript的作用反而是次要的,它只是起到在数据访问的前后对数据进行加工、筛选的作用,甚至可以完全抛开js,直接利用表单提交来实现数据访问和展示的目的,即:
html+Form
↓↑
PHP(ASP、ASP.NET、JSP)
↓↑
MySql
⑷ js如何连接和操作腾讯云mysql数据库
首先是登陆腾讯云,登陆之后可以领取新手礼包,如图
- var mysql = require(‘mysql’);
- var connection = mysql.createConnection({
- host:'',
- user:'root',
- password:'123abc',
- database:' nodejs',
- port:6445
- })
- connection.connect();
- /**
- * 增加员工
- */function addEmployee(){
- var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
- var employeeInsertSql_Params = ['Tim','男',22,'[email protected]']
- connection.query(employeeInsertSql,employeeInsertSql_Params,function(err,result){
- if(err) console.log('[INSERT ERR]-',err.message);
- console.log(result);
- }) }addEmployee()
- }
- /**
- * 更新员工
- */
- function insertEmployee(){
- var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
- var employeeUpdateSql_Params = ['Peter',22];
- connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
- if(err) console.log('[UPDATE ERR]-',err.message);
- console.log(result);
- })}
- insertEmployee();
- /**
- *查询员工
- */ function getEmployee(){
- var employeeGetSql = "SELECT * FROM employee";
- connection.query(employeeGetSql,function(err,result){
- if(err) console.log('[SELECT ERR]-',err.message);
- console.log(result);
- })}
- /**
- *删除员工
- */ function deleteEmployee(){
- var employeeDeleteSql = "DELETE employee WHERE name = ?";
- var employeeDeleteSql_Params = 'Peter';
- connection.query(employeeDeleteSql,employeeDeleteSql_Params,function(err,result){
- if(err) console.log('[DELETE ERR]-',err.message);
- console.log(result);
- })
- }deleteEmployee();
- var mysql = require('mysql');var connection = mysql.createConnection({
- host:'',
- user:'root',
- password:'',
- database:'nodejs',
- port:})connection.connect();/**
- * 增加员工
- * @param {String} employee
- * @param {Function} callback
- */exports.addEmployee=function(employee,callback){
- var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
- var employeeInsertSql_Params = [employee.name,employee.sex,employee.age,employee.email]
- connection.query(employeeInsertSql,employeeInsertSql_Params,callback)}/**
- * 更新员工
- * @param {String} employee
- * @param {Function} callback
- */exports.updateEmployee = function(name,age){
- var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
- var employeeUpdateSql_Params = ['Peter',22];
- connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
- if(err) console.log('[UPDATE ERR]-',err.message);
- console.log(result);
- })}/**
- * 查询员工
- *
- */exports.getEmployee = function(){
- var employeeGetSql = "SELECT * FROM employee";
- connection.query(employeeGetSql,callback)}/**
- * 删除员工
- * @param {String} name
- */exports.deleteEmployee = function(name){
- var employeeDeleteSql = "DELETE employee WHERE name = ?";
- var employeeDeleteSql_Params = 'Peter';
- connection.query(employeeDeleteSql,employeeDeleteSql_Params,callback)
- }再在根目录下新建index.js,代码如下var db = require('./model/employee_two');//增加员工var employee = {
- name:'lisa',
- age:22,
- sex:"女",
- email:'[email protected]'}db.addEmployee(employee,function(err,result){
- if(err) console.log("[INSERT err]-",err.message)
- console.log(result);})//删除员工db.deleteEmployee('Peter',function(err,result){
- if(err) console.log("[DELETE err]-",err.message)
- console.log(result);})//更新员工db.updateEmployee('Tim',23,function(err,result){
- if(err) console.log("[UPDATE err]-",err.message)
- console.log(result);})//查询员工db.getEmployee(function(err,result){
- if(err) console.log("[GET err]-",err.message)
- console.log(result);})
1.在实例上上新建一个为nodejs的数据库,然后新建一个为employee的表,新建四个字段 name sex age email除了年龄为int其它的全部为varchar格式
2.新建一个TimLiu的文件夹,打开cmd,cd TimLiu, 初始化项目npm init ,按照它的提示一步一步的操作即可,安装mysql模块,npm insitall mysql, 这个模块的作用主要是连接mysql数据库。
3.新建一个model.js 文件,
这里的host为我们在腾讯云上开通的外地址,端口号也是在外网地址里面,注意要把外网地址写分开,用户为默认的管理员用户,密码为我们在云平台上设置的密码,数据库为我们创建的nodejs数据库。
接下来我们对数据库进行增删改查操作
getEmployee();
这样我们就可以愉快的操作数据库了
如果大家想把项目更模块化操作,可在model下面新建一个employee_two.js,代码如下
⑸ js怎样连接和调用mysql数据库
我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选
“用户DSN”,如果想被别人访问就选“系统DSN”) 然后添加mysqlodbc,然后把驱动的名字记下来(不是你起的名字,是后面自带的名字!),准备工作做完,我们就可以通过代码访问数据库了。(注:我第一次安装ODBC,用js调用时提示我未知数据源一类的话,卸载ODBC后再次安装ODBC就正常了) 用 ie 先调用odbc驱动 然后操作mysql,话不多说,上代码!
//创建数据库连接对象
var conn = new ActiveXObject("ADODB.Connection");
//创建数据集对象
var rs = new ActiveXObject("ADODB.Recordset");
try{
//MySQL ODBC 5.3 ANSI Driver 这个就是我刚才说让你记得驱动的名字
var connectionstring = "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;User=root;Password=root;Database=mysql;Option=3;Port=3306";
console.log(connectionstring);
//打开连接
conn.open(connectionstring);
//查询语句
var sql = " select * from table1 ";
//打开数据集(即执行查询语句)
rs.open(sql,conn);
//(或者rs=conn.execute(sql);)
//遍历所有记录
while(!rs.eof){
//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。
//WScript.Echo输出记录的内容
document.write(rs.Fields("id") + "\t" + rs.Fields("name") + "\n");
//下一条记录
rs.moveNext();
}
//关闭记录集
rs.close();
//关闭数据库连接
conn.close();
} catch(e){
//异常报告
document.write(e.message);
} finally{
//
}
⑹ 前端JS可以连接MYSQL数据库吗和php有什么不同
Node.JS 服务器可以在 后端 连接mysql,这时的情况和php是一样的。
我从未见过前端JS直接连接mysql的,原因是:
(1)浏览器内置的javascript 引擎一般只支持websocket,即基于http连接的套接字高层协议,而不是真正的socket,因此除非服务器端也开启websocket服务并拆开套接字转发到mysql,否则无法代理连接
(2)我见过的绝大多数mysql 服务器都工作在服务器环境下的一个虚拟子网,换句话说,直接的远程3306端口是拒绝连接的,这样可以隔绝端口直接攻击
如果前段js直接可以连接后端服务器mysql的端口,那么就不叫B/S结构了,而是C/S结构(比如传统的windows桌面程序),安全上有很多问题,所以大多数浏览器也不支持这个操作。
⑺ js如何从mysql读取数据库啊
avaScript DataBase Connector
JSDBC:提供Javascript有效的连接数据库,目前支持MySQL、SQLite、ACCESS,后期会支持更多的数据库;
在从事AJAX开发的工程师肯定会希望有一个通过AJAX直接连接数据库的组件,这样,可以省掉后台很多的操作步骤,比如免去了部署JAVA的运行环境,免去了写很多复杂的JDBC调用,不管出于调试的需要还是应用的需要,JSDBC都能够很好的集成到您的应用当中。
/**
* 类说明:该脚本主要是实现与JSDBC for MySQL 连接,方便用户在js直接使用MySQL
* 创建事件: 3333
*/
//Include OCX Object
document.writeln(" <OBJECT id='mysql' classid='clsid:9C579403-6745-4695-B14C-96212D319F18'");
document.writeln(" codebase='JSDBC_MySQL.ocx#Version=1,0,0,000'");
document.writeln(" WIDTH='0' HEIGHT='0'>");
document.writeln(" </OBJECT>");
//error message
var lasterr = "";
//Exec Falg
var execFlag;
/**
* Connecte to mysql server
* provite:MySQL IP,PORT,DB Name,USER,Password,CharSet
*/
function connectMySQL()
{
execFlag = mysql.connecte("127.0.0.1","3306","testdb","root","123210","GBK");
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Close already open Connection
*/
function closeMySQL()
{
execFlag = mysql.close();
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Exec Insert Into SQL statement
* @param {Object} sql
*/
function insertMySQL(sql)
{
execFlag = mysql.insertData(sql);
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Exec DataBase Manager Language
* @param {Object} sql
*/
function execDMLMySQL(sql)
{
execFlag = mysql.execDML(sql);
if(execFlag == 1)
return 0;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Exec Select Data From DataBase
* @param {Object} sql
* @param {Object} cnum == Number of fields in SQL statement
*/
function selectMySQL(sql,cnum)
{
var rs = mysql.selectData(sql,cnum);
if(rs.length > 0)
{
var array = new Array();
var DataSet = new Array();
var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的,使用时拷贝过去即可
var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的,使用时拷贝过去即可
array = rs.split(rowsplit);
for(var i = 0;i < array.length; i++)
{
var DataRow = array[i].split(fieldsplit);
DataSet[i] = DataRow;
}
return DataSet;
}
else
{
lasterr = mysql.getLastError();
return null;
}
}
/**
* Exec Delete SQL statement
* @param {Object} sql
*/
function deleteMySQL(sql)
{
execFlag = mysql.deleteData(sql);
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Exec Update SQL statement
* @param {Object} sql
*/
function updateMySQL(sql)
{
execFlag = mysql.updateData(sql);
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Exec Call Proce
* @param {Object} proname == Proce Name
* @param {Object} inparas == Proce IN Parameters
* @param {Object} outparas == Proce OUT Parameters
* @param {Object} cnum == Number of fields in OUT Parameters
*/
function callProceMySQL(proname,inparas,outparas,cnum)
{
var rs = mysql.execProce(proname,inparas,outparas,cnum);
if(rs.length == 0)
{
lasterr = mysql.getLastError();
return null;
}
else
{
var array = new Array();
var DataSet = new Array();
var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的
var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的
array = rs.split(rowsplit);
var DataRow = new Array();
for(var i = 0;i < array.length; i++)
{
var fieldarray = array[i].split(fieldsplit);
DataSet[i] = fieldarray;
}
return DataSet;
}
}
/**
* Exec Transcation
* @param {Object} sql
*/
function execTranscationMySQL(sql)
{
execFlag = mysql.execTranscation(sql);
if(execFlag == 1)
return 1;
else
{
lasterr = mysql.getLastError();
return 0;
}
}
/**
* Get Last Error Message if exec error from js
*/
function getLastErrorMySQL()
{
return lasterr;
}
/**
* Get Last Error Message if exec error from ocx
*/
function getLastErrorFromMySQL()
{
var lasterrmysql = mysql.getLastError();
return lasterrmysql;
}
⑻ 如何把JS获得的值存入mysql数据库
JS获得的值 var name=document.getElenmentById("username").value;
用url 提交到后台 脚本 winodw.open('addname.php?username='+name);
后台获取前台提交的数据后用mysql命令写入数据库
<?php
$username=$_GET['username'];
$link=mysql_connect('127.0.0.1','root','******')ordie("connectionerror".mysql_error());
$flag=mysql_select_db("testdb",$link);
mysql_query("setnames"."utf8");
mysql_query('insertintouser(username)value('.$username.')');
?>
⑼ js怎么连接mysql数据库连接
具体连接方法如下:
1、打开HBuilder工具,在Web项目中的js文件夹中,新建JavaScript文件ConnDB.js
使用require()引入mysql模块,然后赋值给变量mysql
⑽ 用javascript如何查询mysql数据库
创建数据库链接对象,使用数据库驱动,要写好数据库登录名与password,然后使用数据库查询命令执行,输出查询结果,关闭数据库,代码你去想,师兄只能帮你这么多了