1. 安装 node.js 环境
node.js 官网: http://nodejs.cn/download/
从node.js官网下载安装包,打开一直执行下一步下一步,不要太简单~。
2. 安装编辑器IDE
首推 vscode, 免费、轻便且强大。
VSCode 官网:https://code.visualstudio.com/
3. 使用 node.js 写api接口
安装依赖包:npm install express --save
安装post请求依赖包:npm install body-parse
在文件中导入依赖包:
const express = require('express')
const bodyParser = require('body-parser')
Example code:
main.js
/*
* @Descripttion:
* @version:
* @Author: CK
* @Date: 2019-11-06 20:34:19
* @LastEditors: CK
* @LastEditTime: 2019-11-06 20:42:41
*/
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const db = require('./plug/db');
app.use(bodyParser.urlencoded({ extended: false })); //设置URL
app.get('/test')
app.post('/insExchange',(req,res)=>{
var req_data = req.body;
var mt_exchange_id = req.body.exchange_id
var exchange_name = req.body.exchange_name
var exchange_alias = req.body.exchange_alias
var pair_one = req.body.pair_one
var pair_one_name = req.body.pair_one_name
var pair_two = req.body.pair_two
var price_pair = req.body.price_pair
var price_usd =req.body.price_usd
var price_cny = req.body.price_cny
var price_change = req.body.price_change
var volume_24h = req.body.volume_24h
var volume_24h_usd = req.body.volume_24h_usd
var market_cap_cny = req.body.market_cap_cny
var market_cap_usd = req.body.market_cap_usd
// let sql = "SELECT `id` FROM exchange WHERE m_id='"+req_data.exchange_id+"'";
let sql = "SELECT `id`, `logo` FROM exchange WHERE m_id=?;"
db.query(sql, [mt_exchange_id], function(err, rows){
console.log(rows)
if (rows.length > 0){
// 如果exchange存在,查询判断交易对是否存在,存在update, 不存在insert
var exchange_id = rows[0].id
var cover_pic = rows[0].logo
// let sql = "SELECT `id` FROM exchanges_pair WHERE pair_one='"+req_data.pair_one+"'and pair_two='"+req_data.pair_two+"' and exchange_id="+rows[0].id
let sql = "SELECT `id` FROM exchanges_pair WHERE pair_one=? and pair_two=? and exchange_id=?;"
let sql_param = [req_data.pair_one, req_data.pair_two, rows[0].id]
console.log('sql_param:', sql_param)
db.query(sql, sql_param, function (err, rows) {
console.log('--2:', rows)
if (rows.length > 0){
// let update_sql = "UPDATE exchanges_pair SET price_pair='"+price_pair+"', price_usd='"+price_usd+"', price_cny='"+price_cny+"', price_change='"+price_change+"',volume_24h='"+volume_24h+"', volume_24h_usd='"+volume_24h_usd+"', market_cap_usd='"+market_cap_usd+"', market_cap_cny='"+market_cap_cny+"' WHERE pair_one='"+pair_one+"', and pair_two='"+pair_two+"' and exchange_id='"+exchange_id+"'"
let update_sql = "UPDATE exchanges_pair SET price_pair=?, price_usd=?, price_cny=?, price_change=?,volume_24h=?, volume_24h_usd=?, market_cap_usd=?, market_cap_cny=? WHERE pair_one=? and pair_two=? and exchange_id=?;"
let sql_param = [price_pair, price_usd, price_cny, price_change, volume_24h, volume_24h_usd, market_cap_usd, market_cap_cny, pair_one, pair_two, exchange_id]
db.query(update_sql, sql_param, function(err, rows){
console.log('update_sql:', update_sql, sql_param)
if (err){
console.log('err update sql:', err)
res.send({'code': 500, 'err': err})
return;
}
res.send({'code': 200})
return;
})
}else{
// insert sql
let insert_sql = "INSERT INTO exchanges_pair(exchange_id, pair_one, pair_one_name, pair_two, exchange_name, exchange_alias, price_pair, price_usd, price_cny, price_change, volume_24h, volume_24h_usd, market_cap_usd, market_cap_cny, cover_pic) VALUE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"
let sql_param = [exchange_id, pair_one, pair_one_name, pair_two, exchange_name, exchange_alias, price_pair, price_usd, price_cny, price_change, volume_24h, volume_24h_usd, market_cap_usd, market_cap_cny, cover_pic]
db.query(insert_sql, sql_param, function(err, rows){
if (err){
console.log('err update sql:', err)
res.send({'code': 500, 'err': err})
return;
}
res.send({'code': 200})
return;
})
}
})
}else{
res.send({'code': 200})
}
})
// console.log(req_data)
// res.send(req_data);
})
app.listen(3000, () => console.log('Example app listening on port 3000!'))
4. 启动程序
测试: node main.js
部署:pm2 start main.js (pm2 安装命令: npm install -g pm2)
--- END ---