目前,越来越多的企业选择使用前后端分离模式新建项目,这样,使得开发工作越来越便捷。那么,作为前端开发,怎样能在后端开发没有完成之前,测试并运行前端项目呢。在这里,小编推荐使用express框架搭建服务。
以MySQL数据库为例。
理所当然的得先安装nodeJs,然后使用node命令安装express。
npm install express -g
安装好express之后,再安装express工程生成依赖。
npm install express-generator -g
之后,选择好工程的目录,并在该目录下,使用express命令初始化一个express工程。
express demo
进入工程目录,使用node命令安装MySQL依赖。
npm install mysql --save-dev
接下来就要进行数据库连接操作了,你可以新建一个测试路由,在该路由里直接进行数据库连接测试。
在routes目录下新建一个名为sqlTest测试路由的js文件。键入以下代码。
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
var connection = mysql.createConnection({
host : 'localhost',
// 数据库连接地址
port : '3306',
// 数据库连接端口,默认为3306时,可省略
user : 'xxx',
// 数据库用户名
password : 'xxx',
// 数据库密码
database : 'test',
// 要连接的数据库名
charset : 'utf8_general_ci'
// 数据库编码
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end();
)
});
module.exports = router;
修改工程的入口文件app.js,把新建的路由添加进去。
// 引入新建的路由文件
var sqlTestRouter = require('./routes/sqlTest');
// 映射路由访问地址
app.use('/sqlTest',sqlTestRouter);
到此,准备工作已经完成,可以启动工程,进行访问测试了。
set DEBUG= demo & npm start
工程启动之后,就可以打开浏览器,在地址栏中键入localhost:3000访问工程了,前提你没有修改工程的默认访问端口,想要修改工程默认访问端口,可在工程的bin目录下修改www.js文件。
键入访问localhost:3000/sqlTest,来测试数据库是否连接成功。如果CMD控制台输出“The solution is: 2”,则表示数据库连接成功!
当然,这还不能满足进行项目开发的条件。要满足项目开发与测试,必须要把数据库连接及操作方法封装起来,并把数据库的操作结果以JSON对象的格式进行返回。下面小编就进行简单的封装一下。
在工程目录下,新建一个名为config的目录,并在该目录下新建一个js文件名为mysql文件,作为数据库连接的配置文件。内容如下:
mysql = {
host : 'localhost',
// 数据库连接地址
port : '3306',
// 数据库连接端口,默认为3306时,可省略
user : 'xxx',
// 数据库用户名
password : 'xxx',
// 数据库密码
database : 'test',
// 要连接的数据库名
charset : 'utf8_general_ci'
// 数据库编码
}
//用module.exports暴露出这个接口,
module.exports = mysql;
再在工程的目录下,新建一个common目录,并在该目录下新建一个js文件命名为dbAction文件。键入下面代码:
var mysql = require('mysql');
var dbConfig = require('../config/mysql');
// 使用连接池连接数据库,避免开太多的线程,提升性能
var pool = mysql.createPool(dbConfig);
/**
* 封装数据库查询结果,返回JSON
*/
function responseDoReturn(res,result){
if (typeof result === 'undefined'){
res.json({
code: '201',
msg:'failed to do'
});
} else {
res.json(result);
}
};
/**
* 封装数据库查询
*/
function query(req, res, next){
pool.getConnection(function(err, connection){
connection.query('select * FROM table_name',function(err,rows){
responseDoReturn(res,rows);
// 释放数据库连接
connection.release();
})
})
}
// 导出模块
module.exports = {
queryAll: query
}
想要测试封装的效果的话,就要新建一个测试路由。当然,也可以修改之前新建的测试路由,代码修改如下:
var express = require('express');
var dbAction = require('../common/basicConnection');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
dbAction.queryAll(req, res, next)
});
module.exports = router;
启动(重启)工程,打开浏览器,键入localhost:3000/sqlTest,就可以看到浏览器页面里输入查询结果。
原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/front-end/node-express-mysql.html