本篇主要记录了在使用nodeJs+Express+Vue+MySQL开发个人博客时,遇到的各种问题以及解决方式,持续更新中。
最终效果预览地址:www.sunhongfei.cn
nodeJS后台开发记录:
1. nodeJS-Express框架:
全局安装express:npm install express -g
、npm install express-generator -g
,两条命令后即可使用express
作为关键字,使用express --version
查看对应版本
2. 设置跨域资源共享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请求接受参数,必须安装body-parser
,并加入以下代码:
var bodyparser = require('body-parser');
app.use(bodyparser.urlencoded({
extende: true
}));
app.use(bodyparser.json())
4. 发送POST请求失败,显示type为OPTIONS,原因是请求头类型错误,应将'Content-Type': 'application/json'
改为'Content-Type': 'application/x-www-form-urlencoded'
5. 连接mysql数据库:首先使用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;
//转为可以正常识别的JSON对象
results = JSON.parse(JSON.stringify(results[0]))
ResponseDate.code = 200
ResponseDate.data = results
res.status(200)
res.json(ResponseDate)
});
connection.end(); //关闭
6. 操作服务器数据库:下载phpMyAdmin,解压后放至服务器下,在浏览器地址栏输入“域名/文件夹名”访问,输入服务器数据库用户名和密码后开始使用。
主界面7. 使用PM2,保证服务开启,使用方法如下:
- 启用应用:
pm2 start app.js
- 停止:
pm2 stop app.js
- 删除:
pm2 delete app.js
- 重启:
pm2 restart app.js
- 停止所有:
pm2 stop all.js
- 查看所有的进程:
pm2 list
- 查看所有的进程状态:
pm2 status
- 查看某一个进程的信息:
pm2 describe app
8. 在服务器上使用NVM安装Node环境
NVM(Node version manager)是Node.js的版本管理软件,使用户可以轻松在Node.js各个版本间进行切换。适用于长期做 node 开发的人员或有快速更新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. 安装多个Node.js。nvm install v8.11.3
v. 运行 nvm ls
查看已安装Node.js版本。
vi. 运行 nvm use v7.4.0
切换Node.js版本至v7.4.0。
9. 当刷新页面,第二次向后台发送请求时报错:Cannot enqueue Handshake after invoking quit.
解决方法:服务器启动时使用connection.connect();
创建一个连接,之后一直使用这一个查询即可,不用再关闭连接,即删除connection.end();
代码
网友评论