這次帶給大家nodejs連線mysql資料庫步驟剖析,nodejs連接mysql資料庫的注意事項有哪些,下面就是實戰案例,一起來看一下。
本文實例講述了nodejs連接mysql資料庫及基本知識點。分享給大家供大家參考,具體如下:
一、幾個常用的全域變數
##1、filename取得目前檔案的路徑
2、
dirname取得目前檔案的目錄
3、
process.cwd()取得目前工程的目錄
二、檔案的引入與匯出
1、使用require引入檔案
module .exports匯出檔案中指定的變數、方法、物件
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" 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中建立一個
的檔案<pre class="brush:php;toolbar:false">'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();
}</pre>
2、在router
檢視中使用查詢資料
① 、引入檔案<pre class="brush:php;toolbar:false">//引入数据库文件
const db = require("./../module/db");</pre>
②、檢視中使用
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中文網其它相關文章!
nodejs對密碼加密處理方法總結
以上是nodejs連接mysql資料庫步驟剖析的詳細內容。更多資訊請關注PHP中文網其他相關文章!