mirror of https://github.com/nocodb/nocodb
o1lab
5 years ago
committed by
GitHub
2 changed files with 2 additions and 95 deletions
@ -1,94 +1 @@ |
|||||||
#! /usr/bin/env node
|
exports.xapi = require('./lib/xapi.js') |
||||||
|
|
||||||
const morgan = require("morgan"); |
|
||||||
const bodyParser = require("body-parser"); |
|
||||||
const express = require("express"); |
|
||||||
const sqlConfig = require("commander"); |
|
||||||
const mysql = require("mysql"); |
|
||||||
const cors = require("cors"); |
|
||||||
const dataHelp = require("./lib/util/data.helper.js"); |
|
||||||
const Xapi = require("./lib/xapi.js"); |
|
||||||
const cmdargs = require("./lib/util/cmd.helper.js"); |
|
||||||
const cluster = require("cluster"); |
|
||||||
const numCPUs = require("os").cpus().length; |
|
||||||
const { version } = require("./package.json"); |
|
||||||
|
|
||||||
function startXmysql(sqlConfig) { |
|
||||||
/**************** START : setup express ****************/ |
|
||||||
let app = express(); |
|
||||||
app.set("version", version); |
|
||||||
app.use(morgan("tiny")); |
|
||||||
app.use(cors()); |
|
||||||
app.use(bodyParser.json()); |
|
||||||
app.use( |
|
||||||
bodyParser.urlencoded({ |
|
||||||
extended: true |
|
||||||
}) |
|
||||||
); |
|
||||||
/**************** END : setup express ****************/ |
|
||||||
|
|
||||||
/**************** START : setup mysql ****************/ |
|
||||||
let mysqlPool = mysql.createPool(sqlConfig); |
|
||||||
/**************** END : setup mysql ****************/ |
|
||||||
|
|
||||||
/**************** START : setup Xapi ****************/ |
|
||||||
console.log(""); |
|
||||||
console.log(""); |
|
||||||
console.log(""); |
|
||||||
console.log(" Generating REST APIs at the speed of your thought.. "); |
|
||||||
console.log(""); |
|
||||||
|
|
||||||
let t = process.hrtime(); |
|
||||||
let moreApis = new Xapi(sqlConfig, mysqlPool, app); |
|
||||||
|
|
||||||
moreApis.init((err, results) => { |
|
||||||
app.listen(sqlConfig.portNumber, sqlConfig.ipAddress); |
|
||||||
var t1 = process.hrtime(t); |
|
||||||
var t2 = t1[0] + t1[1] / 1000000000; |
|
||||||
|
|
||||||
console.log( |
|
||||||
" Xmysql took : %d seconds", |
|
||||||
dataHelp.round(t2, 1) |
|
||||||
); |
|
||||||
console.log( |
|
||||||
" API's base URL : " + |
|
||||||
"localhost:" + |
|
||||||
sqlConfig.portNumber |
|
||||||
); |
|
||||||
console.log(" "); |
|
||||||
console.log( |
|
||||||
" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " |
|
||||||
); |
|
||||||
}); |
|
||||||
/**************** END : setup Xapi ****************/ |
|
||||||
} |
|
||||||
|
|
||||||
function start(sqlConfig) { |
|
||||||
cmdargs.handle(sqlConfig); |
|
||||||
|
|
||||||
if (cluster.isMaster && sqlConfig.useCpuCores > 1) { |
|
||||||
console.log(`Master ${process.pid} is running`); |
|
||||||
|
|
||||||
for (let i = 0; i < numCPUs && i < sqlConfig.useCpuCores; i++) { |
|
||||||
console.log(`Forking process number ${i}...`); |
|
||||||
cluster.fork(); |
|
||||||
} |
|
||||||
|
|
||||||
cluster.on("exit", function(worker, code, signal) { |
|
||||||
console.log( |
|
||||||
"Worker " + |
|
||||||
worker.process.pid + |
|
||||||
" died with code: " + |
|
||||||
code + |
|
||||||
", and signal: " + |
|
||||||
signal |
|
||||||
); |
|
||||||
console.log("Starting a new worker"); |
|
||||||
cluster.fork(); |
|
||||||
}); |
|
||||||
} else { |
|
||||||
startXmysql(sqlConfig); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
start(sqlConfig); |
|
Loading…
Reference in new issue