NodeJS使用express与mysql实现查询功能
最近正在使用Vue+Node制作项目,于是决定写一个使用Node.js+Express搭建服务器的教程步骤:一 开发前的准备:1、安装Node.js官网下载安装2、安装Express使用npm,指令如下:npm install express -g首先输入npm install express-generator -g 第二步输入3、对项目进行初始化 ...
最近正在使用Vue+Node制作项目,于是决定写一个使用Node.js+Express搭建服
务器的教程
步骤:
一 开发前的准备:
1、安装Node.js
官网下载安装
2、安装Express
使用npm,指令如下:
npm install -g express-generator
3、对项目进行初始化
目录位置打开命令行
输入 express+项目的名称(这里使用server)
这里会提示:
4、安装依赖
进入server文件夹调出cmd输入指令:
npm install
5、到此安装完成
主要文件介绍:
- routers:路由,用于确定应用如何响应对特定端点客户机的请求,包括一个URI或者路径和一个特定HTTP请求方法(GET/POST),每个路由可以包含一个或者多个处理程序函数,这些函数在路由配置的时候执行
- app.js:服务器启动的入口
这个时候我们可以在根目录打开命令行,输入npm start来启动我们的服务器
启动成功后在浏览器输入localhost:3000即可看到:
证明没有问题
二、简单的DEMO
在浏览器访问localhost:3000的时候,调用的是index.js中的接口
创建一个路由的格式:
app.method(path,handler)
//app为express实例
//method: HTTP请求的方式
//path:服务器路径
//handler:路由匹配时执行的函数
创建的Demo:
router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); });
简单的例子: 代表着:"/" = 对get请求进行响应
目标:实现一个通过get请求参数不同获取不同地区的接口:
步骤:
在users.js中添加一个接口:
router.get('/getCity', (req, res, next) => {
var params = Url.parse(req.url, true).query;
let response = {};
if (params.id === 1) {
response['cityName'] = "秦皇岛";
} else {
response['cityName'] = "北京";
}
res.json(response);
})
因为users在app.js中已经注册,所以重启服务器直接访问:
localhost:3000/users/getCity?id=1
即可获得返回数据
{"cityName":"北京"}
三、实战-连接数据库
步骤:
一、战前准备:
1、安装mysql模块:
打开server文件夹下的package.json在dependencies中添加:
"mysql":"latest"
然后打开cmd,执行以下npm:
npm install 安装mysql
npm start
二、开始
1、新建database文件夹,用于存放我们mysql的配置信息
2、在database目录中新建DBConfig.js文件,写入:
module.exports = {
mysql: {
host: '127.0.0.1',
user: 'root',
password: '密码',
database: '数据库名',
post: 3306
}
}
3、添加API接口用来调用sql语句
在database中写入querysql.js并写入:
var UserSQL = {
query:'SELECT * FROM 表名'
}
4、在routers目录添加一个users.js来发送操作数据库的API
这个例子添加一个query接口,在users.js写入:
var express = require('express');
var router = express.Router();
//引入mysql模块
var mysql = require("mysql");
//引入文件
var dbConfig = require('./database/DBConfig');
//使用DBConfig中配置信息创建一个MySQL连接池
var pool = mysql.createPool(dbConfig.mysql);
//响应JSON数据
var responseJSON = function (res, ret) {
if (typeof ret == 'undefined') {
res.json({
code: "-200",
msg: "操作失败"
});
} else {
res.json(ret);
}
};
//进行查询
router.get('/query', function (req, res, next) {
pool.getConnection(function (err, connection) {
var params = req.query || req.params; //前端传的参数(暂时写这里,在这个例子中没用)
connection.query(qusrySql.UserSQL, function (err, result) {
//将结果以json形式返回到前台
responseJSON(res, result);
//释放链接
connection.release();
})
})
})
这个时候重新启动服务器,浏览器输入localhost:3000/users/query会输出返回的结果
更多推荐
所有评论(0)