Dieses Mal erkläre ich Ihnen ausführlich die Schritte zum Verbinden von NodeJS mit der MySQL-Datenbank und welche Vorsichtsmaßnahmen für NodeJS zum Herstellen einer Verbindung mit der MySQL-Datenbank gelten Praktischer Fall, werfen wir einen Blick darauf.
1. Mehrere häufig verwendete globale Variablen
1, filename
Den Pfad der aktuellen Datei abrufen
2, dirname
Verzeichnis der aktuellen Datei abrufen
3. process.cwd()
Verzeichnis des aktuellen Projekts abrufen
2. Import und Export von Dateien
1 , Verwenden Sie require
, um Dateien zu importieren
2. Verwenden Sie module.exports
, um in der Datei angegebene Variablen, Methoden und Objekte zu exportieren
3. node
Erstellen des ProjektsVerzeichnisstruktur
Demo
package.json Pakete oder Module, von denen das aktuelle Projekt abhängt
Router Datei, die das Routing speichert
Ansichten Modul, das Ansichten speichert
Module wie Datenbank App. js
Haupteintragsdatei
Viertens schreiben Sie die Routing-Ansicht separat in die
router
1 Datei 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;
demo
'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);
Templateejs
1. Muss installiert werden, kann aber nicht importiert werden npm install ejs --save
//配置模板的文件路径 app.set("views",dirname+"/views"); //配置模板引擎 app.set("view engine","ejs");
①, Vorlagendatei
<!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);
Verwendung von Vorlagendateien ejs
1. Rückgabedaten...
let dataset = {
name:"张三",
age:20,
books:['三国演义','西游记','红楼梦','水浒传']
}
res.render("03_index.ejs",dataset);
...
<h2><%= name %></h2> <h2><%= age %></h2>
<ul> <% for(let i in books){%> <li><%= books[i] %></li> <%}%> </ul>
//设置静态文件的加载(js,css,img) app.use(express.static(dirname+"/public"));
-Datenbank
1. Erstellen Sie eine in Datei<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
2. Verwenden Sie eine Abfrage Daten① in der -Ansicht, Datei importieren
'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(); }
②, verwenden Sie module
//引入数据库文件 const db = require("./../module/db");
db.js
3 in der Ansicht ①, Sehen Sie sich das Codebeispiel auf der Startseite an router
router.get("/", (req, res) => { db("select * from m_dept",(err,data)=>{ console.log(data); res.render("03_index.ejs",{data:data}); }) });
9. Über
Zurückreq.query
Im Front-End- und Back-End-Trennungsentwicklungsmodus sind die vom Backend zurückgegebenen Daten im Allgemeinen JSON, was nicht erforderlich ist Verwenden der EJS-Template-Engine node
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("成功");
}
})
})
json
Empfohlene Lektüre: vue verarbeitet von storejs erhaltene Daten
Beispielcode zum Erstellen von Feuerwerks-Spezialeffekten mit p5.js_javascript-Fähigkeiten
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Verbinden von NodeJS mit der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!