利用D3.js轻松读取数据库数据 (d3.js读取数据库)

随着互联网的飞速发展,数据成为了一页新的历史。大量的数字化数据催生了数据分析行业,而数据可视化作为数据分析的重要环节,也成为了越来越热门的话题。

在数据可视化中,D3.js 是一个很受欢迎的 JavaScript 库。它强大的数据绑定(data binding)和数据操作(data manipulation)能力,使其成为实现交互可视化的必备工具之一。本文旨在讲解如何使用 D3.js 来轻松读取数据库数据。

1.前置准备

在开始使用 D3.js 读取数据库数据之前,我们需要先安装好以下必要工具:

– Node.js: 用于运行 Express 服务端

– Mongodb: 用于创建数据库,存储数据

– D3.js: 用于前端数据可视化

2.创建 Express 服务端

我们首先需要创建一个 Express 服务端,以便从数据库中读取数据并返回给前端。下面是一个简单的示例:

“`

const express = require(‘express’);

const mongoose = require(‘mongoose’);

const bodyParser = require(‘body-parser’);

const app = express();

const port = process.env.PORT || 3000;

app.use(bodyParser.urlencoded({ extended: true }));

app.use(bodyParser.json());

mongoose.Promise = global.Promise;

mongoose.connect(‘mongodb://localhost:27017/test’, {useNewUrlParser: true, useUnifiedTopology: true});

const DataSchema = new mongoose.Schema({

name: String,

value: Number

});

const Data = mongoose.model(‘Data’, DataSchema);

app.get(‘/data’, (req, res) => {

Data.find((err, data) => {

if (err) {

res.send(err);

}

res.json(data);

});

});

app.listen(port);

console.log(‘Server started!’);

“`

在这个示例中,我们创建了一个 Express 实例,并连接到了一个名为“test”的 Mongodb 数据库,同时创建了一个名为“Data”的 mongoose model。我们还添加了一个 /data 的路由,当客户端请求该路由时,服务端会从 Mongodb 数据库中查找所有数据,并将其返回给客户端。

3.使用 D3.js 与服务端交互

接着,我们需要在前端使用 D3.js,并与服务端交互。下面是一个简单的示例:

“`

D3.js and MongoDB

d3.json(‘/data’).then(data => {

console.log(data);

});

“`

在这个示例中,我们加载了 D3.js 库,并在客户端通过 d3.json() 方法请求 /data 路由。该方法返回一个 promise,在 promise 的回调函数中我们可以获取从服务端返回的数据。

4.使用 D3.js 绘制可视化图形

我们使用 D3.js 绘制所需的可视化图形。这里给出一个简单的 bar chart 的实现示例:

“`

D3.js and MongoDB

d3.json(‘/data’).then(data => {

const margin = { top: 20, right: 20, bottom: 30, left: 40 };

const width = 960 – margin.left – margin.right;

const height = 600 – margin.top – margin.bottom;

const svg = d3.select(‘svg’)

.attr(‘width’, width + margin.left + margin.right)

.attr(‘height’, height + margin.top + margin.bottom)

.append(‘g’)

.attr(‘transform’, `translate(${margin.left},${margin.top})`);

const x = d3.scaleBand()

.range([0, width])

.padding(0.1)

.domn(data.map(d => d.name));

const y = d3.scaleLinear()

.range([height, 0])

.domn([0, d3.max(data, d => d.value)]);

svg.append(‘g’)

.attr(‘transform’, `translate(0,${height})`)

.call(d3.axisBottom(x));

svg.append(‘g’)

.call(d3.axisLeft(y));

svg.selectAll(‘.bar’)

.data(data)

.enter().append(‘rect’)

.attr(‘class’, ‘bar’)

.attr(‘x’, d => x(d.name))

.attr(‘width’, x.bandwidth())

.attr(‘y’, d => y(d.value))

.attr(‘height’, d => height – y(d.value));

});

“`

在这个示例中,我们使用了 D3.js 的 line chart 模板代码,并根据数据库中读取的数据动态生成了 bar chart。D3.js 提供了丰富的可视化代码模板,可以减少开发者的开发难度,并且可以在基础之上扩展出更多的特性。

在本文中,我们讲解了如何使用 D3.js 来轻松读取数据库数据。利用 D3.js 强大的数据绑定(data binding)和数据操作(data manipulation)能力,我们可以轻松地将数据库中的数据可视化,并实现交互效果。希望能够帮助到大家。

相关问题拓展阅读:

JAVASCRIPT如何操作数据库?

方法和详细的操作步骤如下:

1、之一步,打开HBuilder工具,并在Web项目的js文件夹中创建一个新的JavaScript文件ConnDB.js,使用require()引入mysql模块,然后将该值分配给变量mysq,见下图,转到下面的步骤。

2、第二步,完成上述步骤后,调用createConnection()方法设置主机,用户名,密码,端口并返回数据,见下图,转到下面的步骤。

3、第三步,完成上述步骤后,调用mysql模块中的connect()方法以连接到mysql数据,见下图,转到下面的肢誉步骤。

4、第四步,完成上述步骤后,编写查询语句SQL并将其作为字符串分配给变量sq,见下图,转到下面的步骤。

5、第五步,完成上述步骤后,亩饥州调用query(),根据返回值判断结果,然后打迅蔽印返回,见下图。这样,就解决了这个问题了。

JavaScript操戚森灶作数据库高扮操作Access数据库,跟其他语言操作差不多,总结了一下习惯代码,仅供参考学习。

现在在F盘有文件abc.mdf,表名为Student,一共2个字段,Id数字类型主键,stuName文本类型,现对该表进行增删改查的操作:

1.查询

数据查询

var conn = new ActiveXObject(“ADODB.Connection”);

conn.Open(“DBQ=f:\\abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};”);

var rs = new ActiveXObject(“ADODB.Recordset”);

var sql=”select * from Student”;

rs.open(sql, conn);

var html=””;

while(!rs.EOF)

{

html=html+rs.Fields(“Id”)+” “+rs.Fields(“stuName”);

rs.moveNext();

}

document.write(html);

rs.close();

rs = null;

conn.close();

conn = null;

2.增加操作

增加操作

function addUser(id,stuName)

{

//用 JavaScript 写服务器春枝端连接数据库的代码示例

var conn = new ActiveXObject(“ADODB.Connection”);

conn.Open(“DBQ=F:\\abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};”);

var sql=”insert into Student(ID,stuName) values(“+id+”,'”+stuName+”‘)”;

try{

conn.execute(sql);

alert(“添加成功”);

}

catch(e){

document.write(e.description);

alert(“添加失败~~~”);

}

conn.close();

}

编号

姓名

3.删除操作

删除操作

function delStu(id)

{

var conn = new ActiveXObject(“ADODB.Connection”);

conn.Open(“DBQ=F:\\abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};”);

var sql=”delete from Student where Id=2″;

conn.execute(sql);

conn.close();

conn = null;

alert(“修改成功”);

}

4.修改操作

修改操作

function updateUser(userId,userName)

{

var conn = new ActiveXObject(“ADODB.Connection”);

conn.Open(“DBQ=F:\\abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};”);

var rs = new ActiveXObject(“ADODB.Recordset”);

var sql=”update Student set stuName='” + userName + “‘ where Id=” + userId + “”;

conn.execute(sql);

conn.close();

conn = null;

alert(“修改成功”);

}

编号

姓名

另外,也可以操作SQL Server数据库

数据库名为:MySchool,表名为Student,StudentId为int类型,自增列,studentName为学生姓名,为varchar类型。数据库用户名为sa,密码是ok,

SQL数据查询

var conn = new ActiveXObject(“ADODB.Connection”);

conn.Open(“Driver={SQL server};Server=.;DataBase=MySchool;UID=sa;Password=ok;”);//打开数据库

var rs = new ActiveXObject(“ADODB.Recordset”);

var sql=”select * from Student”;

rs.open(sql, conn);

var html=””;

while(!rs.EOF)

{

html=html+rs.Fields(“StudentId”)+” “+rs.Fields(“studentName”)+””;

rs.moveNext();

}

document.write(html);

rs.close();

rs = null;

conn.close();

conn = null;

希望对你有所帮助!!!

//创建数据库连接对象

var conn = new ActiveXObject(“ADODB.Connection”);

//创建数据集对象

var rs = new ActiveXObject(“ADODB.Recordset”);

try{

//数据库连接串,具体配置请参考:

//如果不知道如何旁态配置连接串,可以通过配置UDL文件后用文本编辑器打开获得

var connectionstring = “Driver={MySQL ODBC 5.2w Driver};Server=localhost;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;Port=3306”;

//打开连接

conn.open(connectionstring);

//查芦迅询语句

var sql = ” select * from tb_col “;

//打开数据集(即执行查询语句)

rs.open(sql,conn);

(或者rs=conn.execute(sql);)

//遍历所有记录

while(!rs.eof){

//WScript是Windows 的脚本宿主对象,运哗源详细情况请在windows帮助里查找。

//WScript.Echo输出记录的内容

WScript.Echo(rs.Fields(“id”) + “\t” + rs.Fields(“name”) + “\n”);

//下一条记录

rs.moveNext();

}

//关闭记录集

rs.close();

//关闭数据库连接

conn.close();

} catch(e){

//异常报告

WScript.Echo(e.message);

} finally{

//

}

javascript作为客户端脚本是不能直接读写数据库的。要实现这种效果可以使用AJAX,扮正雹清宽但依然需要服务器端脚本。当然javascript可以作为服务器端脚本编厅帆写ASP页面。

//用 javascript 写服务器端连接数据库的代码示例 var conn = new ActiveXObject(“ADODB.Connection”); conn.Open(“Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; ” +”Password=; Initial Catalog=pubs”); var rs = new ActiveXObject(“ADODB.Recordset”); var sql=”select * from authors”; rs.open(sql, conn); shtml = “”; shtml +=”au_idau_lnameau_fnamephoneaddress citystatezip”; while(!rs.EOF) { shtml += “” + rs(“au_id”) + “” + rs(“au_lname”) + “孝漏” + rs(“au_fname”) + “” + rs(“phone”) + “” + rs(“address”) + “” + rs(“city”) + “巧迅烂” + rs(“state”) + “” + rs(“zip”) + “”; rs.moveNext; } shtml += “”; document.write(shtml); rs.close(); rs = null; conn.close(); conn = null;

d3.js读取数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于d3.js读取数据库,利用D3.js轻松读取数据库数据,JAVASCRIPT如何操作数据库?的信息别忘了在本站进行查找喔。


数据运维技术 » 利用D3.js轻松读取数据库数据 (d3.js读取数据库)