日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

node + express + mysql 搭建后台

發布時間:2025/7/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node + express + mysql 搭建后台 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基礎配置

入口文件app.js

var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var session = require('express-session');app.use(bodyParser()); app.use(cookieParser()); // 配置session,具體配置請查看express-session文檔 app.use(session({secret: 'yoursecret', // 密鑰name: 'nodeapp', // cookie的name,默認為connect.sidcookie: {maxAge: 1800000}, // cookie有效期時間resave: false, // 強制session保存到session store中。即使在請求中這個session沒有被修改saveUninitialized: true, // 強制沒有“初始化”的session保存到storage中 }));// 添加靜態資源文件 app.use(express.static(__dirname + '/files'));// 設置header頭解決跨域問題 app.all('*', function(req, res, next) {res.header('Access-Control-Allow-Origin', "*");res.header("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept,X-Requested-With");res.header("Access-Control-Allow-Methods","PUT, POST, GET, DELETE, OPTIONS");res.header("X-Powered-By",' 3.2.1')next(); });// 路由,路由獨立出來 var router = require('./routes/index.js'); router(app);// 監聽8088端口,端口可自行設定 var server = app.listen(8088, '0.0.0.0', function () {var host = server.address().address;var port = server.address().port;console.log("應用實例,訪問地址為 http://%s:%s", host, port); }) 復制代碼

./routes/index.js

var db = require('../db/index.js'); module.exports = function(app) {app.get('/', function (req, res) {res.send('Hello World');});app.get('/list', function (req, res) {db.query('SELECT * FROM users', function (err, result) {if(err){console.log(err);return;}console.log(result)});});// 輸出指定的模板文件,如果沒有進行前后端分離可使用此方法/*app.get('/index.htm', function (req, res) {res.sendFile( __dirname + "/" + "index.htm" );})*/}; 復制代碼

db.js

var mysql = require('mysql'); // 數據庫配置 var config = {host : 'localhost',user : 'root',password : 'root',database : 'node',port: 3306 };// 創建連接池 var pool = mysql.createPool(config);// 查詢數據庫 var query = function(sql, options, callback){ pool.getConnection(function(err, conn){ if(err){ callback(err, null, null); }else{ conn.query(sql, options, function(err, results, fields){ // 釋放連接 conn.release(); // 事件驅動回調 callback(err, results, fields); }); } }); };module.exports = {query }; 復制代碼

Session 跨域問題

如果使用的是session來保持登錄狀態,且涉及到session跨域問題,header文件頭需要做出以下修改:

  • 將外源Access-Control-Allow-Origin設為指定的域, 如:http://localhost:8080,可設置多個;
  • res.header('Access-Control-Allow-Origin', "http://localhost:8080"); res.header('Access-Control-Allow-Origin', "http://127.0.0.1:8080"); 復制代碼
  • 將Access-Control-Allow-Credentials設為true,同時在ajax請求headers里設置withCredentials: true,本次示例中使用的是axios
  • res.header('Access-Control-Allow-Credentials', true); 復制代碼

    修改后的設置:

    app.all('*', function(req, res, next) {res.header('Access-Control-Allow-Origin', "*");res.header('Access-Control-Allow-Origin', "http://localhost:8080");res.header('Access-Control-Allow-Credentials', true); res.header("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept,X-Requested-With");res.header("Access-Control-Allow-Methods","PUT, POST, GET, DELETE, OPTIONS");res.header("X-Powered-By",' 3.2.1')next(); }); 復制代碼

    使用token

    loading...

    其他

    loading...

    總結

    以上是生活随笔為你收集整理的node + express + mysql 搭建后台的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。