实战 Node 第2天:编写接口、项目部署
前言
在前面的《实战 Node 第1天:环境搭建、数据库连接、日志输出、编写接口、项目部署》已经做好了前期准备工作,今天就来热身一下,开始编写、测试第一个接口,并且部署项目。
一、写一个添加用户信息的接口
新建 main.js 文件,内容如下:
//使用express框架开发node项目
var express = require('express');
var app = express();
//2.使用mysql连接数据库
var mysql = require('mysql');
//3.使用log4js查看日志
var log4js = require('log4js');
//3.1 配置日志项
log4js.configure({
appenders: {
cheese: {
type: 'file',
filename: 'cheese.log',
coloured:'red'
}
},
categories: {
default: {
appenders: [
'cheese'
],
level: 'error'
}
}
});
var logger = log4js.getLogger('cheese');
//连接数据库
var connection = mysql.createConnection({
host : '127.0.0.1',//主机
port : '3306',//端口
user : 'root',//用户名
password : '',//密码
database : 'exchange'//数据库名称
});
connection.connect();
app.get('/addUserInfo', function (req, res) {
//打印请求报文
logger.info(req.query);
//写sql语句
connection.query('INSERT INTO user VALUES("jack",123)', function (error, results, fields) {
if (error) throw error;
res.setHeader('Content-Type', 'text/plain');
//配置 cros 解决跨域问题
res.setHeader('Access-Control-Allow-Origin', '*');
//打印响应报文
logger.info(results);
var obj = {
msg:'',
code:0
}
if(results.affectedRows == 1){
obj.msg = '添加成功';
obj.code = 1;
}else {
obj.msg = '添加失败';
obj.code = -1;
}
//打印输出结果
logger.info(obj);
res.send(obj);
});
});
//监听 8081 端口
app.listen(8081);
代码编写完之后执行 node main,开启服务。
二、测试接口是否正常
- 在地址栏输入 http://localhost:8081/addUserInfo 测试接口是否调通。
- 查看数据库数据是否添加成功。
三、项目部署
1. 将 node-pro 上传到服务器;
2. Linux 下环境搭建
1)安装 Node 的 tar 包;
sudo wget https://nodejs.org/dist/v10.15.3/node-v10.15.3.tar.gz
2)解压
sudo tar -zxvf node-v10.15.3.tar.gz
3)移动到 node 目录下
sudo mv node-v10.15.3 /usr/local/node/
4)配置环境变量
a. 打开配置文件;
vim /etc/profile
b. 按 i 进入编辑状态;
c. 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL上面输入
export NODE_HOME=/usr/local/node/node-v9.8.0
export PATH=$NODE_HOME/bin:$PATH
d. 按 Esc 退出编辑状态,并且保存退出当前编辑
:wq!
e. 运行以下命令使其生效;
source /etc/profile
f. 检验是否设置成功;
node -v
g. 出现版本号,配置成功。
3. 启动项目
1)进到 node-pro 目录下
2)执行 npm install 安装所需依赖
npm install
3)全局安装 pm2
npm install pm2 -g
4)启动项目
pm2 start main
5)查看日志
pm2 logs