??本篇主要記錄了在使用nodeJs+Express+Vue+MySQL開發(fā)個(gè)人博客時(shí)嫌松,遇到的各種問題以及解決方式,持續(xù)更新中奕污。
??最終效果預(yù)覽地址:www.sunhongfei.cn
nodeJS后臺(tái)開發(fā)記錄:
1. nodeJS-Express框架:
全局安裝express:npm install express -g
萎羔、npm install express-generator -g
,兩條命令后即可使用express
作為關(guān)鍵字碳默,使用express --version
查看對(duì)應(yīng)版本
2. 設(shè)置跨域資源共享CORS:
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-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1')
res.header("Content-Type", "application/x-www-form-urlencoded");
// res.header("Content-Type", "application/json;charset=utf-8");
next();
});
3. 使用POST請(qǐng)求接受參數(shù)贾陷,必須安裝body-parser
,并加入以下代碼:
var bodyparser = require('body-parser');
app.use(bodyparser.urlencoded({
extende: true
}));
app.use(bodyparser.json())
4. 發(fā)送POST請(qǐng)求失敗嘱根,顯示type為OPTIONS髓废,原因是請(qǐng)求頭類型錯(cuò)誤,應(yīng)將'Content-Type': 'application/json'
改為'Content-Type': 'application/x-www-form-urlencoded'
5. 連接mysql數(shù)據(jù)庫:首先使用npm install mysql
安裝模塊
let mysql = require('mysql');
let connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '******',
database: 'myblog'
});
connection.connect(); //連接
connection.query('SELECT * FROM article', function (error, results, fields) {
if (error) throw error;
//轉(zhuǎn)為可以正常識(shí)別的JSON對(duì)象
results = JSON.parse(JSON.stringify(results[0]))
ResponseDate.code = 200
ResponseDate.data = results
res.status(200)
res.json(ResponseDate)
});
connection.end(); //關(guān)閉
6. 操作服務(wù)器數(shù)據(jù)庫:下載phpMyAdmin该抒,解壓后放至服務(wù)器下慌洪,在瀏覽器地址欄輸入“域名/文件夾名”訪問,輸入服務(wù)器數(shù)據(jù)庫用戶名和密碼后開始使用凑保。
主界面
7. 使用PM2冈爹,保證服務(wù)開啟,使用方法如下:
- 啟用應(yīng)用:
pm2 start app.js
- 停止:
pm2 stop app.js
- 刪除:
pm2 delete app.js
- 重啟:
pm2 restart app.js
- 停止所有:
pm2 stop all.js
- 查看所有的進(jìn)程:
pm2 list
- 查看所有的進(jìn)程狀態(tài):
pm2 status
- 查看某一個(gè)進(jìn)程的信息:
pm2 describe app
8. 在服務(wù)器上使用NVM安裝Node環(huán)境
NVM(Node version manager)是Node.js的版本管理軟件欧引,使用戶可以輕松在Node.js各個(gè)版本間進(jìn)行切換频伤。適用于長期做 node 開發(fā)的人員或有快速更新node版本、快速切換node版本這一需求的用戶芝此。
i. 直接使用git將源碼克隆到本地的~/.nvm目錄下剂买,并檢查最新版本。
yum install git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
ii. 激活NVM癌蓖。
echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile
iii. 列出Node.js的所有版本。nvm list-remote
iv. 安裝多個(gè)Node.js婚肆。nvm install v8.11.3
v. 運(yùn)行 nvm ls
查看已安裝Node.js版本租副。
vi. 運(yùn)行 nvm use v7.4.0
切換Node.js版本至v7.4.0。
9. 當(dāng)刷新頁面较性,第二次向后臺(tái)發(fā)送請(qǐng)求時(shí)報(bào)錯(cuò):Cannot enqueue Handshake after invoking quit.
解決方法:服務(wù)器啟動(dòng)時(shí)使用connection.connect();
創(chuàng)建一個(gè)連接用僧,之后一直使用這一個(gè)查詢即可结胀,不用再關(guān)閉連接,即刪除connection.end();
代碼