首页数据库nodejs连接数据库?nodejs怎么连接数据库

nodejs连接数据库?nodejs怎么连接数据库

编程之家2023-10-17103次浏览

今天给各位分享nodejs连接数据库的知识,其中也会对nodejs怎么连接数据库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

nodejs连接数据库?nodejs怎么连接数据库

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

本文实例讲述了nodejs简单访问及操作mysql数据库的方法。分享给大家供大家参考,具体如下:

var

mysql

=

require('mysql');

//调用MySQL模块

nodejs连接数据库?nodejs怎么连接数据库

mysql模块要安装

$

npm

install

mysql

//创建一个connection

nodejs连接数据库?nodejs怎么连接数据库

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怎么连接数据库

通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作 MySQL数据库。安装MySQL模块到NodeJS中我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库

想要快速了解Node.js,赞生推荐亲看看 node.js_guide.pdf— node.js开发指南:想要电子版高清的留言发送

如果不想留言可以带你做飞机!直接下载

Node.js

简单介绍一下node.js的操作吧

安装 node-mysql

$ npm install mysql

创建测试表

//数据库名 NodeSampleCREATE TABLE `NodeSample`.`MyTable`(

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

`firstname` VARCHAR( 20) NOT NULL,

`lastname` VARCHAR( 20) NOT NULL,

`message` TEXT NOT NULL

) ENGINE= MYISAM;

连接数据库

Js代码

var sys= require('sys');

var Client= require('mysql').Client;

var client= new Client();

client.user='someuser';

client.password='password';

client.connect(function(error, results){

if(error){

console.log('Connection Error:'+ error.message);

return;

}

console.log('Connected to MySQL');

});

nodejs+mysql怎样操作数据库

这次给大家带来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--save2、在主文件中配置

//配置模板的文件路径

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" rel="external nofollow" 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

});

...相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

如何在项目中使用PHP静态绑定

如何使用AngularJS监听渲染

如何在nodejs中通过web访问数据库

1、安装node.js、mysql,此处略(自行搜索吧)…;

2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)…

这里假定mysql使用的用户名为root,密码为123456

相应的mysql如下:

复制代码代码如下:

/**

*创建名为test的数据库

*/

DROP DATABASE IF EXISTS test;

CREATE DATABASE test;

USE test;

/**

*创建user_info表

*/

DROP TABLE IF EXISTS `user_info`;

CREATE TABLE `user_info`(

`userId` int(10) NOT NULL AUTO_INCREMENT,

`userName` varchar(20) DEFAULT NULL,

PRIMARY KEY(`userId`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/**

*插入三条记录

*/

INSERT INTO user_info VALUES(NULL,'张一'),(NULL,'张二'),(NULL,'张三');

3、创建存储过程(写的很冗余,故意的…正好学习一下语法>_<);

复制代码代码如下:

DELIMITER$$

DROP PROCEDURE IF EXISTS `test`.`proc_simple`$$

CREATE PROCEDURE proc_simple(IN uid INT(10), OUT uName VARCHAR(2), OUT totalCount INT)

BEGIN

DECLARE str_name VARCHAR(20);

SET@str_name='';

SET totalCount= 0;

SELECT COUNT(1),userName INTO totalCount,@str_name FROM user_info WHERE userId= uid;

SET uName=@str_name;

SELECT uName, totalCount;

END$$

DELIMITER;

4、写程序进行调用(假定存为名为sql.js的文件);

复制代码代码如下:

/**

* Created with JetBrains WebStorm.

* User: Meteoric_cry

* Date: 12-12-28

* Time:上午00:18

* To change this template use File| Settings| File Templates.

*/

var mysql= require('mysql');

var connection= mysql.createConnection({

host:'localhost',

port: 3306,

user:'root',

password:'123456',

database:'test',

charset:'UTF8_GENERAL_CI',

debug: false

});

connection.connect();

connection.query('CALL proc_simple(1,@a,@b);', function(err, rows, fields){

if(err){

throw err;

}

var results= rows[0];

var row= results[0];

console.log("userName:",row.uName,"count:", row.totalCount);

});

connection.end();

关于nodejs连接数据库的内容到此结束,希望对大家有所帮助。

阋墙?阋墙是什么意思便宜的免备案虚拟主机 免备案虚拟主机哪家好