node + express + mysql 搭建后台
生活随笔
收集整理的這篇文章主要介紹了
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文件頭需要做出以下修改:
修改后的設置:
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 搭建后台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u3d无锯齿遮罩shader-可用于ug
- 下一篇: Unexpected end of JS