Nodejs 链接 Mariadb 实例

编程学思 2018-04-26 13:06:15 ⋅ 810 阅读

Nodejs + Mariadb 实例

没有数据库的后台可能只是前端+网络而已,之前对Mariadb系统的学习一段时间,加之Nodejs以及express的使用,现将用一个小的实例将nodejs与关系型数据库---MariaDB关联起来,当然非关系型数据库---Mongodb之后会在一个稍微大点的项目中依次罗列出来.

该文章的主要目标在于: Nodejs与MaiarDB关联;

第一部分 配置 Mariadb

1.1 Mariadb 概述

对于Mariadb的历史与渊源在此不过多累述,可以理解为开源的/升级的/MySQL的孪生兄弟.
如需详细文档请点击Mariadb系列文章, 在此简要将配置罗列一下(以Mac为例子)

1. xcode-select --install 下载最新xcode2. 配置并检测Homebrew;3. 下载MariaDB: brew install mariadb4. 启动数据库服务: mysql.server start5. 连接数据库: mysql -u root -p
1.2 启动数据服务,链接数据库
BWF-huanghaowei:~ 51Code$ mysql.server start Starting MySQL SUCCESS! BWF-huanghaowei:~ 51Code$ mysql -uroot Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.19-MariaDB Homebrew

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> 

第二部分 Nodejs相关配置

2.1 Nodejs相关配置

MariaDB官网提供关联库---mariasqlgithub地址

2.2 实例代码
2.2.1 下载 mariasql
Desktop $ mkdir Test$ cd Test#下载配置, 中间可能会提示很多信息,在此忽略$ npm install mariasql
...
..
.4 warnings generated.  SOLINK_MODULE(target) Release/sqlclient.nodeclang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9/Users/51testing/Desktop/Test/asf
└─┬ mariasql@0.2.6 
  ├── lru-cache@2.7.3 
  └── nan@2.5.0 $ ls 
node_modules
2.2.2 编写index.js文件

[默认之前已经启动Mariadb服务]

测试数据与表格
//表格CREATE TABLE `orders` (  `order_id` int(11) NOT NULL AUTO_INCREMENT,  `order_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  `order_amount` float(6,2) DEFAULT NULL,  `customer_id` int(11) DEFAULT NULL,  PRIMARY KEY (`order_id`) );//插入数据INSERT INTO `orders` VALUES (1,'2016-12-14 04:02:35',111.00,1),(2,'2016-11-11 14:22:22',222222.00,2),(3,'2016-11-11 15:33:33',1.00,1),(4,'2016-12-12 03:11:11',123456.00,3),(5,'2016-12-14 07:18:17',1234.00,5);
nodejs代码
//链接Mariasqlvar Client = require('mariasql');//配置相关信息var c = new Client({
  host: '127.0.0.1',  //用户名
  user: 'root',  //密码默认为空
  password: '',  //使用哪个数据库
  db: 'user_db'});

c.query('SHOW DATABASES', function(err, rows) {  if (err)    throw err;    console.log('---------查看所有的数据库------------');    console.dir(rows);
});//使用array的形式快于对象,效果一样c.query('SHOW TABLES', null, { useArray: true }, function(err, rows) {  if (err)    throw err;  console.log('--------查看所有的数据表格-------------');  console.dir(rows);
});//结合使用SQL语句c.query('SELECT * FROM orders', function(err, rows) {  if (err)    throw err;  console.log('--------查看orders的数据-------------');  console.dir(rows);
});//使用占位符c.query('SELECT * FROM orders WHERE order_id = ? AND customer_id = ?',
        [ 5, 5 ],        function(err, rows) {  if (err)    throw err;  console.log('--------SELECT + WHERE-------------');   
  console.dir(rows);
});//定义sql语句, 稍后使用,另外一种占位符var prep = c.prepare('SELECT * FROM orders WHERE order_id = :orderid AND customer_id = :customerid');
c.query(prep({orderid: 5, customerid: 5}), function(err, rows){    if (err) {        throw err
    } else {         console.log('--------SELECT + WHERE-------------');    
        console.dir(rows);
    }
})//关闭数据库c.end();

打开终端,切换至该目录下, 执行$ node index即可.

更多设置请前往mariasql






全部评论: 0

    我有话说:

    Node实战篇:Nodejs Mariadb 实例

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL

    使用 NodeJS 实现一个简单区块

    每天我们都会听说发现新的数字货币的消息,或者有人说它们是一个很快就会爆炸的大泡沫,其中只有区块会留下。

    Node实战篇:Express--jade模板引擎(七)

    Jade(Pug) — Node Template Engine,一个高性能的模板引擎,专为 Node 而做......

    Node实战篇:Express路由(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

    NodeJS 10.5.0 中的线程:实用介绍

    几天前,Node.js版本10.5.0发布,其中包含的主要功能之一是添加了线程支持。

    Node.js 实战篇--微信支付系列(二)

    上一篇首先我们看一下整体上微信小程序的开发流程图

    Node实战篇:Express-session解析(八)

    Session和HTTP协议属于不同层面的事物,HTTP属于ISO七层模型的最高层应用层,前者Session不属于后者,前者HTTP是具体的动态页面技术来实现的,但同时它又是基于后者的。

    Nodejs 接入 公众号【逗比版】

    Nodejs 接入 公众号 需求:Boss: 我们要接入公众号,你看下文档对下。Me: 🆗 然后,可能因为对腾讯的反感,加之网上对腾讯的吐槽,怀着愤世嫉俗的态度胡乱的找资源,看方案

    Nodejs视频服务器 切片ffmpeg

    Node 视频服务器 切片ffmpeg

    Node 模块之 util URL queryString path(八)

    第一部分 util util是一个Node.js核心模块,util模块设计的主要目的是为了满足Node内部API的需求。其中包括:格式化字符串、对象的序列化、实现对象继承等常用方法。要使用util

    Node模块之Events模块(五)

    Node模块之Events模块(五)

    Node模块之fs模块(六)

    屏幕快照 2017-08-08 上午10.53.21.png 第一部分 概述 Node.js 提供一组类似UNIX(POSIX)标准的文件操作API,Node.js中操作文件的模块是fs(File

    Nodejs 搭建https服务器

    ----“安全套层”。它是在上世纪90年代中期,由网景公司...

    2018年8个技巧来构建更好的Node.js应用程序

    2018年8个技巧来构建更好的Node.js应用程序

    Node异步式I/O和异步式编程(三)

     Node.js 最大的特点就是异步式 I/O(或者非阻塞I/O)与事件紧密结合的编程模式。 第一部分: I/O 1.阻塞I/O与非阻塞I/O概念 1.1阻塞I/O(同步I/O) 线程在

    Nodejs实用技巧之-Exceljs

    今天我们就在此介绍下exceljs的基本使用,应该可以满足我们大部分的需求。

    Node实战篇:阶段项目(九)

    项目整体预览 项目的github地址 界面逼格还行-_- 主要功能: 登陆; 退出; 所用的主要模块: express, 路由.静态文件.模块分工等; express-session, 采用session的方式解决http无状态; bod...

    Node实战篇:Express 中间件 cookie-parser(六)

    cookieParser()实际上是对http传入的cookie进行解析后赋值给req.cookies,使得中间件可用

    Node实战篇:使用joi来验证数据模型 (十)

    Joi 是 hapijs 自带的数据校验模块,他已经高度封装常用的校验功能,本文就是介绍如何优雅地使用 joi 对数据进行校验......