nodejs连接mysql数据库及基本知识点详解

本文实例讲述了nodejs连接mysql数据库及基本知识点。分享给大家供大家参考,具体如下:

一、几个常用的全局变量

1、__filename获取当前文件的路径
2、__dirname获取当前文件的目录
3、process.cwd()获取当前工程的目录

二、文件的引入与导出

1、使用require引入文件

2、使用module.exports导出文件中指定的变量、方法、对象

三、node项目的搭建目录结构

demo

package.json 当前项目所依赖的包或者模块
    router  存放路由的文件
    views   存放视图的模块
    public  静态文件
    module 书写模块比如数据库
    app.js 主入口文件

四、将路由视图单独写在router文件中demo

1、视图视图文件

const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
 res.send("hello word");
});
router.get("/article", (req, res) => {
 res.send("我是文章列表");
})
module.exports = router;

2、在主文件中调用

'use strict';
const express = require("express");
const app = express();
app.use("/",require("./router/03_router"))
app.use("/app",require("./router/03_router1"))
app.listen(3000);

五、使用ejs模板

1、需要安装但可以不引入

npm install ejs --save

2、在主文件中配置

//配置模板的文件路径
app.set("views",__dirname+"/views");
//配置模板引擎
app.set("view engine","ejs");

3、使用

①、模板文件

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
</head>
<body>
<h1>我是模板渲染的</h1>
</body>
</html>

②、在路由中渲染模板

'use strict';
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
 //可以直接使用res.render("03_index");
 res.render("03_index.ejs");
});
router.get("/article", (req, res) => {
 res.send("我是文章列表");
})
module.exports = router;

③、主文件

'use strict';
const express = require("express");
const app = express();
//配置模板的文件路径
app.set("views",__dirname+"/views");
//配置模板引擎
app.set("view engine","ejs");
app.use("/",require("./router/03_router"))
app.use("/app",require("./router/03_router1"))
app.listen(3000);

六、关于ejs模板文件的使用

1、返回数据

...
let dataset = {
 name:"张三",
 age:20,
 books:['三国演义','西游记','红楼梦','水浒传']
}
res.render("03_index.ejs",dataset);
...

2、普通的字段

<h2><%= name %></h2>
<h2><%= age %></h2>

3、迭代数组

<ul>
 <% for(let i in books){%>
  <li><%= books[i] %></li>
 <%}%>
</ul>

七、加载静态文件

1、主文件中配置

//设置静态文件的加载(js,css,img)
app.use(express.static(__dirname+"/public"));

2、在模板中使用

<link rel="stylesheet" href="./css/bootstrap.css" rel="external nofollow" >
<script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script>
<img src="./img/002.jpg">
...

八、使用mysql数据库

1、在module中创建一个db.js的文件

'use strict';
const mysql = require("mysql");
/**
 * 将整个方法全部暴漏出去
 * @param sql sql语句
 * @param arg 传递到sql语句中的参数,可以不写
 * @param callback 回调函数,可以不写
 */
module.exports = function (sql,arg,callback) {
 //1.创建连接(根据自己的数据库配置)
 let config = mysql.createConnection({
  host:"localhost", //数据库的地址
  user:"root", //数据库用户名
  password:"root", //数据库密码
  port:"3306", //mysql数据库的端口号
  database:"mybatistest" //使用那个数据库
 });
 //2.开始连接数据库
 config.connect();
 //3.对数据库的增删改查操作
 config.query(sql,arg,(err,data)=>{
  callback && callback(err,data);
 })
 //4.关闭数据库
 config.end();
}

2、在router视图中使用查询数据

①、引入文件

//引入数据库文件
const db = require("./../module/db");

②、视图中使用

router.get("/", (req, res) => {
 db("select * from m_dept",(err,data)=>{
  console.log(data);
  res.render("03_index.ejs",{data:data});
 })
});

3、新增数据

①、前端页面见代码案例

②、通过req.query获取用户数据参数

router.get("/regist",(req, res)=>{
 //获取到输入参数,前提是input上要写name
 console.log(req.query);
 db("insert into student(name,age) values(?,?)",[req.query.username,req.query.age],(err,data)=>{
  console.log(data);
  if(data){
   res.send("成功");
  }
 })
})

九、关于node返回json的方式

在前后端分离开发模式中后端返回的数据一般都是json,不需要使用ejs模板引擎了

...
res.json({
 info:"成功",
 code:1
});
...

十、github上的本章节代码案例https://github.com/kuangshp/node-pro1

希望本文所述对大家nodejs程序设计有所帮助。

您可能感兴趣的文章:

  • nodejs连接mysql数据库简单封装示例-mysql模块
  • nodejs进阶(6)—连接MySQL数据库示例
  • nodejs实现的连接MySQL数据库功能示例
  • Nodejs连接mysql并实现增、删、改、查操作的方法详解
  • nodeJs实现基于连接池连接mysql的方法示例
  • nodejs中操作mysql数据库示例
  • NodeJS链接MySql数据库的操作方法
  • nodejs简单访问及操作mysql数据库的方法示例
  • Nodejs使用mysql模块之获得更新和删除影响的行数的方法
  • NodeJs使用Mysql模块实现事务处理实例
(0)

相关推荐

  • NodeJS链接MySql数据库的操作方法

    如下所示: //1.用npm命令安装mysql模块 npm install mysql //2.js文件中引入mysql模块 const mysqlModule = require('mysql'); //3.创建mysql链接对象 const mysqlConnection = mysqlModule.createConnection({ host:连接的数据库地址.(默认:localhost) port:连接地址对应的端口.(默认:3306) localAddress: 源IP地址使用TCP

  • nodejs中操作mysql数据库示例

    引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了. 内容: 下面这个所演示的是NodeJS与Mysql 的交互. 这时需要为NodeJS加入Mysql 的Module了,这时前一章说到的npm(Node package manager)启到作用了. 把Mysql Module装到NodeJS中: 复制代码 代码如下: $npm install Mysql JS脚

  • nodejs进阶(6)—连接MySQL数据库示例

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABASE mydb1; mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | mydb1 | | performance_sch

  • nodejs简单访问及操作mysql数据库的方法示例

    本文实例讲述了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 : '', /

  • nodejs连接mysql数据库简单封装示例-mysql模块

    本人最近在学习研究nodejs,下面我来记录一下,有需要了解nodejs连接mysql数据库简单封装的朋友可参考.希望此文章对各位有所帮助. 安装mysql模块 npm install mysql 测试是否连接成功 mysql.js代码: var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', da

  • nodeJs实现基于连接池连接mysql的方法示例

    本文实例讲述了nodeJs实现基于连接池连接mysql的方法.分享给大家供大家参考,具体如下: mysql.js //连接数据库 var mysql = require('mysql'); var pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'gfdfsdf34r34r', database:'caiji' }); module.exports = function(sql, callback) { p

  • Nodejs连接mysql并实现增、删、改、查操作的方法详解

    本文实例讲述了Nodejs连接mysql并实现增.删.改.查操作的方法.分享给大家供大家参考,具体如下: 一.准备 nodejs的教程,大多以操作mongodb为示例.但是mongodb有一些局限性,具体官网上有说.我打算用MySQL,因为多少还有点使用经验.先以研究为主.node-mysql,是目前最火的node下的mysql驱动.初步了用了一下,因为异步回调的这种方式,果然好多坑. 下面这个项目的package name是 mysql,版本是mysql@ 2.5.4 先说明下面的所示代码,均

  • Nodejs使用mysql模块之获得更新和删除影响的行数的方法

    在mysql中直接进行这样的判断的方法是使用 row_count(), 这一条语句要紧跟着你执行的sql语句后面. 而Nodejs的i/o都是异步的于是这就产生了一个问题, 不太好判断 row_count()到底是哪句sql执行的结果. 粗略的扫了一眼文档, 文档中并没有描述这个问题. 本想函数嵌套来达到同步的效果的, 却无意发现在执行sql对应的异步函数中的参数中有  affectedRows字段, 经测试, 这货就是 row_count()的结果.实例: 复制代码 代码如下: var cmd

  • nodejs实现的连接MySQL数据库功能示例

    本文实例讲述了nodejs实现的连接MySQL数据库功能.分享给大家供大家参考,具体如下: 1.在工程目录下运行npm install mysql安装用于nodejs的mysql模块: 2.创建db.js模块用于连接mysql,同时定义query查询方法: var mysql = require('mysql'); // 创建一个数据库连接池 var pool = mysql.createPool({ connectionLimit: 50, host: 'localhost', user: '

  • NodeJs使用Mysql模块实现事务处理实例

    依赖模块: 1. mysql:https://github.com/felixge/node-mysql npm install mysql --save 2. async:https://github.com/caolan/async npm install async --save (ps: async模块可换成其它Promise模块如bluebird.q等) 因为Node.js的mysql模块本身对于事务的封装过于简单,而且直接使用会有很严重callback hell,故我们封装了两个方法

随机推荐