您好,欢迎访问一九零五行业门户网

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 --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});...
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
如何在项目中使用php静态绑定
如何使用angularjs监听渲染
以上就是nodejs+mysql怎样操作数据库的详细内容。
其它类似信息

推荐信息