NodeJs篇
上面已经对NodeJs这部分的项目结构做了介绍,现在我们就细细解剖下内部的细节,帮助大家了解我们利用Node需要完成什么任务,在整个量化项目中起到什么作用。
npm install express -g
npm install express-generator -g
express NodeJs
包资源
虽然通过express进行构建项目,大部分的架构已经实现,但许多像mysql包、session包、jwt包等需要我们自行安装,下面介绍下我们用到的一些包,并且在项目中的应用。
npm install bluebird --save
npm install co --save
很多程序员写惯了同步代码,一下子适应不了Node的异步编写方式,这两个库主要用于node中实现同步方式写代码,下面代码多会有很多地方用到co。
npm install mysql --save
通过上面命令安装mysql包,并且在models下创建mysqldb.js,用于与数据连接。
'use strict'
const mysql = require('mysql')
var mysqldb = {
}
function connectDB() {
mysqldb.db = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: '123456',
port: '3306',
database: 'quant',
multipleStatements: true
})
console.log("==========>>>>>mysql connect<<<<<<===========")
// 连接错误,2秒重试
mysqldb.db.connect(function (err) {
if (err) {
console.log('error when connecting to db:', err)
setTimeout(handleError, 2000)
} else {
console.log('mysql connect ok!')
}
})
mysqldb.db.on('error', function (err) {
console.log('db error', err)
// 如果是连接断开,自动重新连接
if (err.code == 'PROTOCOL_CONNECTION_LOST' || err.code == 'ECONNREFUSED') {
connectDB()
} else {
console.log(err)
}
})
}
connectDB()
module.exports = mysqldb
models下的Users.js用于从数据库读取用户的订单、资金、持仓、委托、成交、结算、策略等信息。同时也加了些授权认证。
npm install Buffer --save
npm install jwt-simple --save
在common下的util.js下添加了常用的获取Token,验证中间件等公共方法。
'use strict'
var jwt = require('jwt-simple')
var Buffer = require('Buffer')
const Msg = require('../common/Msg')
const secret = Buffer.from('epiquantsecret', 'hex')
// 获取Token
function GetJwtToken(userId) {
var payload = {
Id