nodejs連線mysql資料庫及基本認識
阿新 • • 發佈:2019-02-03
一、幾個常用的全域性變數
- 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
五、使用ejs
模板
- 1、需要安裝但可以不引入
npm install ejs --save
2、在主檔案中配置
//配置模板的檔案路徑 app.set("views",__dirname+"/views"); //配置模板引擎 app.set("view engine","ejs");
3、使用
1、模板檔案
<!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>
2、在路由中渲染模板
'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;
3、主檔案
'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"> <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
檢視中使用查詢資料1、引入檔案
//引入資料庫檔案 const db = require("./../module/db");
2、檢視中使用
router.get("/", (req, res) => { db("select * from m_dept",(err,data)=>{ console.log(data); res.render("03_index.ejs",{data:data}); }) });
3、新增資料
- 1、前端頁面見程式碼案例
2、通過
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
});
...