nodejs数据库能操作数据库吗

对于一个前端开发人员来说,学习node可能没什么难度,单独的来学习 mysql,可能也没有什么难度,但是使用 nodejs对 mysql数据库,进行操作,可能对于初学者是一大挑战。
如果你确实要学习node是如何操作数据库的,最起码,你需要知道一些基本的东西:nodejs、mysql。
其中,nodejs你最好知道一些基本的模块——Stream流、Buffer对象、fs文件系统、模块系统、以及一个框架express。或者koa框架也行。又或者是阿里的egg框架。当然对于初学者而言,express也许更好一点。
至于mysql,个人觉得只需要一些基本的命令知道就行了,你需要知道mysql如何安装在电脑中,如何启动mysql,基本的建表、查表的命令知道就行了。
node中的mysql模块
node中的mysql模块,就是给你进行数据库操作的核心模块。
基本使用:
npm install --save mysql
第二步:数据库连接
* 数据库链接部分
const mysql = require('mysql');
const connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'woainia123',
database:'node'
connection.connect(function(){
console.log('链接成功')
增删改查的示例介绍
connection.query('select id, title, author, data from book',function(error, results, fields){
if (error) throw error;
console.log('The solution is: ', results);
这个语句的意思就是,从book这个表中查询出来它的id、title、author等数据信息。
2、数据插入
const addSql = 'insert into book(title, author, data ) values (?, ?, ?)';
connection.query(addSql,addSqlParams,function(err, result){
console.log('[INSERT ERROR] -',err.message);
console.log('数据插入:', result)
3、数据更新update
var modSql = 'update book set author = ? where id = ?';
var modSqlParams = ['李武帝', 3];
connection.query(modSql,modSqlParams, function(err, result){
console.log('update error',err.message);
console.log('UPDATE affectedRows',result.affectedRows);
4、数据删除
connection.query(delSql, delSqlParams, function (err, result) {
console.log('[DELETE ERROR] - ',err.message);
console.log('--------------------------DELETE----------------------------');
console.log('DELETE affectedRows',result.affectedRows);
console.log('-----------------------------------------------------------------\n\n');
Nodejs 连接各种数据库集合例子
nodejs与mysql数据库的交互操作
Node实践总结4——数据库操作
nodejs操作mysql数据库
node连接数据库
没有更多推荐了,博客分类:
使用CentOS系统,nodejs版本-v0.8.7。
1,安装 node-mysql
# npm install mysql
安装成功显示:
2,创建mysql-test.js文件:
var Client = require('mysql').C
var client = new Client();
client.host = 'localhost';
client.port = 3306;
client.user = 'root';
client.password = 'root123';
client.database='test';
query(client);
function query(client){
client.query(
'select * from userinfo',
function(err,res,fields){
console.log(res);
client.end();
# node mysql-test.js
查询成功!!正确显示查询数据(json格式的):
4,可能出现的问题
由于版本问题,创建mysql Client的方式也可能不同,我第一次创建mysql-test.js代码,运行时出现如下问题:
发现错误提示Client.connet有问题,于是查看了client.js文件(上图红色部分)发现了问题,进行了改正。
错误原因:
1,使用了require('mysql').createClient()创建client对象;
2,使用了client.connect()连接数据库,现在使用的版本已经不用了。
浏览 30701
楼主,你这个报错啊,有没有在Windows下使用nodejs连接mysql的实例。有什么问题吗?
浏览: 620237 次
来自: 广州
群主有开放源代码吗?
楼主可不可以问你几个问题呀,关于这个插件,貌似单线程,而且不分 ...
不知道楼主能不能解决下浏览器兼容的问题,目前好像火狐和谷歌浏览 ...
你好!我后台用的是C#,为什么一直上传失败,好像是后台取不到参 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Nodejs mysql的增、删、改、查操作
Nodejs连接mysql的增、删、改、查操作(转载 自:http://blog.sina.com.cn/s/blog_5a6efa330102vctw.html)
nodejs的教程,大多以操作mongodb为示例。但是mongodb有一些局限性,具体官网上有说。我打算用MySQL,因为多少还有点使用经验。先以研究为主。node-mysql,是目前最火的node下的mysql驱动。初步了用了一下,因为异步回调的这种方式,果然好多坑。
下面这个项目的package name是&mysql,版本是mysql@ 2.5.4
先说明下面的所示代码,均已以下代码开头,后面不在说明
var connection = mysql.createConnection({
&&host&&&&&: '127.0.0.1',
&&user&&&&&: 'root',
&&password : 'root123',
&&port: '3306',
&&database: 'my_news_test',
代码什么意思很直白,如果想深入,可以去上面的官网查。像host,user之类的配置,写过MySQL数据库应用程序的,应该都很清楚,请自行修改相应参数。后面的代码,假定数据库&my_news_test&中有一个叫node_use的表,表有3个属性
id:&自增主键
name:名字,有unique的限制
测试MySQL  MySQL版本:5.5
二、建库并插入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');
三、先测试一下环境
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) {&
&&&&&&&if(results)
&&&&&&&&&&for(var i = 0; i & results. 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
四、Node.js结合MySQL的增、删、改、查操作
var mysql&&= require('mysql');&
var connection = mysql.createConnection({&&&&
&&host&&&&&: '127.0.0.1',&&&&&&
&&user&&&&&: 'root',&&&&&&&&&&&&&
&&password : 'root123',&&&&&&
&&port: '3306',&&&&&&&&&&&&&&&&&&
&&database: 'my_news_test',
connection.connect();
var&&userAddSql = 'INSERT INTO node_user(id,name,age) VALUES(0,?,?)';
var&&userAddSql_Params = ['Wilson', 55];
connection.query(userAddSql,userAddSql_Params,function (err, result) {
&&&&&&&&if(err){
&&&&&&&&&console.log('[INSERT ERROR] - ',err.message);
&&&&&&&&}&&&&&&&
&&&&&&&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: '',
&&protocol41: true,
&&changedRows: 0 }
#######################
var mysql&&= require('mysql');&
var connection = mysql.createConnection({&&&&
&&host&&&&&: '127.0.0.1',&&&&&&
&&user&&&&&: 'root',&&&&&&&&&&&&&
&&password : 'root123',&&&&&&
&&port: '3306',&&&&&&&&&&&&&&&&&&
&&database: 'my_news_test',
connection.connect();
var userModSql = 'UPDATE node_user SET name = ?,age = ? WHERE id = ?';
var userModSql_Params = ['Hello World',99,7];
connection.query(userModSql,userModSql_Params,function (err, result) {
&&&if(err){
&&&&&&&&&console.log('[UPDATE ERROR] - ',err.message);
&&&}&&&&&&&
&&console.log('----------UPDATE-------------');
&&console.log('UPDATE affectedRows',result.affectedRows);
&&console.log('******************************');
connection.end();
运行结果如下
D:\User\myappejs4&node mysqltest_up.js
----------UPDATE-------------
UPDATE affectedRows 1
******************************
var mysql&&= require('mysql');&
var connection = mysql.createConnection({&&&&
&&host&&&&&: '127.0.0.1',&&&&&&
&&user&&&&&: 'root',&&&&&&&&&&&&&
&&password : 'root123',&&&&&&
&&port: '3306',&&&&&&&&&&&&&&&&&&
&&database: 'my_news_test',
connection.connect();
var&&userGetSql = 'SELECT * FROM node_user';
//查&query
connection.query(userGetSql,function (err, result) {
&&&&&&&&if(err){
&&&&&&&&&&console.log('[SELECT ERROR] - ',err.message);
&&&&&&&&&&
&&&&&&&&}&&&&&&&
&&&&&&&console.log('---------------SELECT----------------');
&&&&&&&console.log(result);&&&&&&&
&&&&&&&console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');&
connection.end();
运行的结果如下
D:\User\myappejs4&node mysqltest_query.js
---------------SELECT----------------
[ { id: 1, name: 'admin', age: 32 },
&&{ id: 2, name: 'dans88', age: 45 },
&&{ id: 3, name: '张三', age: 35 },
&&{ id: 4, name: 'ABCDEF', age: 88 },
&&{ id: 5, name: '李小二', age: 65 },
&&{ id: 6, name: 'Wilson', age: 55 } ]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
4、删除操作
var mysql&&= require('mysql');&
var connection = mysql.createConnection({&&&&
&&host&&&&&: '127.0.0.1',&&&&&&
&&user&&&&&: 'root',&&&&&&&&&&&&&
&&password : 'root123',&&&&&&
&&port: '3306',&&&&&&&&&&&&&&&&&&
&&database: 'my_news_test',
connection.connect();
var&&userDelSql = 'DELETE FROM node_user WHERE id = 7';
connection.query(userDelSql,function (err, result) {
&&&&&&&&if(err){
&&&&&&&&&&console.log('[DELETE ERROR] - ',err.message);
&&&&&&&&&&
&&&&&&&&}&&&&&&&
&&&&&&&console.log('-------------DELETE--------------');
&&&&&&&console.log('DELETE affectedRows',result.affectedRows);
&&&&&&&console.log('&&&&&&&&&&&&&&&&&');&
connection.end();
运行的结果如下
D:\User\myappejs4&node mysqltest_del.js
-------------DELETE--------------
DELETE affectedRows 1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
增、删、改、查操作 全部完成了!
阅读(...) 评论()其他回答(1)
找到语句了
SHOW FULL COLUMNS FROM ys_
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
时间: 18:36:06
&&&& 阅读:186
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的
当然了,这只是基础的demo,经供参考,但是相信也会有收获
今天的内容是用Nodejs+Express搭建基本的web,然后呢nodejs路由和Ajax之间的数据传输,也就是表单提交,然后在用nodejs把数据写入mysql数据库
用到的东西比较多,但是还是很有趣的
1.安装node.js
安装node.js,直接去官网下载然后根据需求点击下一步就好了
Node.js安装包及源码下载地址为:&(英文官网)
(中文官网),可以下载&LTS(长期支持版本)
node.js总,npm可是很重要的,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,而且很多模板都是需要用这个来安装的
现在的版本都是已经知道npm,下面说一下需要的命令行(node.js都是用命令行来执行的--CMD)
//测试是否安装成功
cnpm install npm -g
//安装淘宝镜像,即使用cnpm代替npm,都是一样的              只是淘宝镜像安装会快一些,其实感觉都差不多
node.js很多的模块, 需要什么模块加加载对应的模块,但是模块有一些是需要自己安装的
$ npm install &Module Name&
//通用安装模板,Module Name是模板的名称
$ npm install express
//使用 npm 命令安装express(web框架)
模块的调用,在js里面使用
var express = require(‘express‘);
//调用express模块
模块的安装有两种形式,一种时本地一种时全局(-g) ,require是调用本地的
npm install express
// 本地安装
npm install express -g
//全局安装
我这里就不做多解释, 大家可以去网上看看,node.js的东西还是不少的,需要时间去学习
3.Express 搭建简单web
什么是Express呢?
Express 是一个简洁而灵活的 node.js Web应用框架提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
1.可以设置中间件来响应 HTTP 请求。
2.定义了路由表用于执行不同的 HTTP 请求动作。
3.可以通过向模板传递参数来动态渲染 HTML 页面。
----引用互联网
之前说到,需要的模块要安装,所以这里我们要先安装这个模块
$ cnpm install express --save
//安装express并保存在依赖列表,可以理解为安装在本地,这样方便调用
当然我们还需要其他的框架,当然是否需要根据需求来
$ cnpm install body-parser --save
//处理 JSON, Raw, Text 和 URL 编码的数据。
$ cnpm install cookie-parser --save
//解析Cookie工具,通过req.cookies取到cookie并转成对象
$ cnpm install multer --save
//用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据
$ cnpm list express
//查询版本号,也是看是否安装成功
不多说直接上代码创建一个js文件,我这里是取名server.js
var express = require(‘express‘);
//调用模块
var app = express();
app.get(‘/‘, function (req, res) {
res.send(‘Hello World‘);
var server = app.listen(8888, function () {
//监听端口
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})当然还可以这样写
    var express=require(‘express‘);
var jqery=require(‘jquery‘);
var app=express();
//主頁 get
用来处理get数据提交的路由,后门我们会说路由
app.get(‘/‘,function(req,res){
console.log("主頁GET請求");
res.send("hello get");
})var server=app.listen(8081,function(){
var host=server.address().address
var port=server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port);
那么问题来了,怎么运行才是一个node.js程序呢,毕竟我们好像什么都没声明
直接用cmd命令行运行这个文件& node server.js
首先我们的路径要是根目录,可以直接文件夹找到然后在路径栏直接写cmd,cmd将自动以当前路径开始
这样就运行成功了,下面这句话是我写的,成功打印出来了,然后用浏览器打开页面,页面路径是127.0.0.1:8888
&这样一个基础的web就好了
&4.什么是Node.js的路由&
&由于我们之后和ajax数据传递的时候需要用到路由,所以我们还是了解一下, 而且路由的确是很重要的,我这里简单的介绍一下
路由决定了由谁(指定脚本)去响应客户端请求。
在HTTP请求中,我们可以通过路由提取出请求的URL以及GET/POST参数。
//路由演示
function route_express(){
var express=require(‘express‘);
var jqery=require(‘jquery‘);
var app=express();
//主頁 get
app.get(‘/‘,function(req,res){
console.log("主頁GET請求");
res.send("hello get");
//主頁 post請求
app.post(‘/‘,function(req,res){
console.log("主頁post請求");
res.send("hello post");
//刪除頁面
app.get(‘/del_user‘,function(req,res){
console.log("del_user get 響應要求");
res.send("刪除頁面");
//用戶頁面請求
app.get(‘/list_user‘,function(req,res){
console.log("list_user get 響應要求");
res.send("用戶頁面請求");
var server=app.listen(8081,function(){
var host=server.address().address
var port=server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port);
然后运行js文件,可以用过访问不同的地址得到不同的效果
http://<span style="color: #7.0.0.1:8081/list_user
http://<span style="color: #7.0.0.1:8081
http://<span style="color: #7.0.0.1:8081/del_user会分别打印不同路由配置的文字
&4.Node.js+Express+路由+ajax 数据交互
上面说了那么多,现在直接上代码,关于nodejs和ajax前后台数据的交互
当然文件路径也很重要
//表單提價
from_submit();
//为了方便管理我用函数包起来调用
//表單提價
function from_submit(){
var express = require(‘express‘);
//调用模板
var app = express();
//不污染本来,用变量来表示
var bodyParser = require(‘body-parser‘);
//调用模板
//創建編碼解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.use(express.static(‘public‘));
//设置今天文件目录
app.get(‘/form_index.html‘,function(req,res){
res.sendFile(__dirname+"/"+form_index.html); //提供静态文件
app.post(‘/process_post‘, urlencodedParser, function (req, res) {
//post处理方法
// 输出 JSON 格式
var response = {
"names":req.body.names,
//得到页面提交的数据
"passwords":req.body.passwords
//加入數據庫
mysql_connec(req.body.names,req.body.passwords);
//数据库方法,加入了两个参数,是提交的数据
console.log(response);
res.send("1"); //返回的数据,这里根据情况写
res.end();
var server = app.listen(8888, function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
下面是html页面
&!DOCTYPE html&
&meta charset="UTF-8"&
&title&&/title&
&script src="jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"&&/script&
&/head&&body&
&form &!--action="http://127.0.0.1:8888/process_post" method="post" --& & //这里我隐藏了表单提交的两个参数,                  
我用了ajax,如果不用ajax直接就填写路径参数和请求方式就可以了
name: &input type="text" name="names" /&
password: &input type="password" name="passwords" /&
&input class="myForm" type="button" value="submit" /&
&script type="text/javascript"&
$(function() {
$(".myForm").on(‘click‘, function() {
//添加点击事件
var names = $("input:nth-of-type(1)").val();
//获取两个的参数
var passwords = $("input:nth-of-type(2)").val();
$.post("http://127.0.0.1:8888/process_post", { //jq的post方法
names: names,
passwords: passwords
}, function(res) {
alert("提交成功");
提交成功并且数据库有内容
&这是cmd的提交打印的方法,这里是数据库连接方法打印的,等下后面说
上图是数据库刚添加的
&4.Node.js+MySql 获得数据写入数据库
后台没有数据库怎么算是后台呢,获取了数据存入数据库才算完整,说起来之前我是完全没玩过数据库
为了nodejs才学的,其实也不难,首先安装MySql,直接百度下载然后安装就好了
安装之后首先要打开数据库服务,然后cmd打开,我们小测试一下
打开安装好的数据库命令行文件,然后输入密码,安装时输入的root密码,看到下面这些就代表可以使用了
但是有个问题,用cmd写数据库还是很麻烦的,所以我们需要一个可视化软件,当然小编比较懒才用的
下载数据库可视化软件
页面是这样的,这里已经建好了一张表,当然首先要连接数据库,数据库教程大家可以去网上看看,也是狠多的
下面开始写
当然我们还是需要引入模块,首先安装
$ cnpm install mysql
这里因为只需要添加数据于是我就注释了其他方法,这个方法就加载刚才的js里面,这里也是一个方法,添加参数 //數據庫鏈接方法
//mysql_connec();
//數據庫鏈接方法
function mysql_connec(name,pas) {
//鏈接數據庫
var mysql = require("mysql");
var connection = mysql.createConnection({
//配置参数,然后添加你的数据库里面的表
host: ‘localhost‘,
user: ‘root‘,
password: ‘*********‘,
database: ‘xmibear‘
connection.connect();
//查詢語句
var selectSql = "select * from formtable";
connection.query(selectSql, function(err, res) {
console.log(‘[select error]-‘, err.message);
console.log("\n\n----------查詢語句-----------------------\n");
console.log(res);
console.log("\n----------查詢語句ENDENDNEDNED-----------");
//插入數據
var addSql = "insert into formtable(id,name,password) values(0,?,?)"; //存放数据库语言的,这里是添加
var addParmas = [name, pas];
connection.query(addSql, addParmas, function(err, res) {
console.log("[insert error]-", err.message);
}//cmd打印内容
console.log("\n\n----------插入數據-----------------------\n");
console.log(res);
console.log("\n----------插入數據ENDENDNEDNED-----------");
//更新數據
var upSql = "update formtable set name=?,password=? where id=?";
var upParmas = ["劉王婆", "55555", 1];
connection.query(upSql, upParmas, function(err, res) {
console.log("[updata error]-", err.message);
console.log("\n\n----------更新數據-----------------------\n");
console.log(res);
console.log("\n----------更新數據ENDENDNEDNED-----------");
然后运行文件
在前台html提交的时候cmd就会打印,这时候数据已经存进数据库了,刷新就看到了
到这里及说完了,但是很多东西还是要自己试试才知道,当然我觉得不是很难,入门还是可以的
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:http://www.cnblogs.com/mibear/p/nodejs.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 nodejs数据库框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信