#原因
写了多年C#,在项目开发过程中发现不管是C/S还是B/S都需要专人编写后台数据接口,哪怕是一个简单的SQL语音,在这前后分离的时代,我想能不能写一个接口管理器不需要后端人员参与,直接由前端人员编写SQL直接生成接口
#过程
抽调公司高手,用C#写了一个之后,觉得还可以就是感觉执行速度不快,而且安装.netframework是一个很大的问题,跨平台还非常困难,同时想要自定义还非常困难,有没有一种方式可以查询数据库并且可以调整输出结果?Nodejs进入我的想法,因为非常简单,而且没有学习成本。
#思考
考虑到可能涉及各种数据因此采用mongo,界面直接用的Layui,做到后期直接做成了所有代码直接在接口里面的编写了渐渐写成了一个小型IDE,最近又想进行改造,奈何工资太低同时时间有限,特发出来希望各位逐步完善,形成国产IDE
#界面
#第一版采用express
var config = require(’./config’);
//var redis = require(’./redis’);
var express = require(‘express’);
var webrequest = require(‘request’);
var web = exports.express = express(); //express.js
var bodyParser = require(‘body-parser’);
var path = require(‘path’);
var token = require(’./token’);
var ueditor = require(“ueditor”);
var compression = require(‘compression’);
var session = require(‘express-session’);
var cookieParser = require(‘cookie-parser’);
var XLSX = require(‘xlsx’);
var TITLE = “‘Express’”;
var formidable = require(“formidable”);
var svgCaptcha = require(‘svg-captcha’);
var UUID = require(‘uuid’);
var mgdb = require(’./mgdb’);
//跨域设置
function setHeader(req, res) {
if (req.header(“Origin”)) {
res.setHeader(“Access-Control-Allow-Origin”, req.header(“Origin”));
} else {
res.setHeader(“Access-Control-Allow-Origin”, “*”);
}
res.setHeader(“Access-Control-Allow-Headers”, “x-requested-with,content-type”);
res.setHeader(“Access-Control-Allow-Credentials”, “true”);
res.setHeader(“Access-Control-Allow-Methods”, “OPTION,POST,GET”);
}
function ResultJson(res, result) {
try {
res.json(result);
} catch (error) { }
}
function IsNullOrEmpty(val) {
return val == null || val == undefined || val == ‘’;
}
function GetValue(req, key) {
if (req.query && req.query[key]) {
return req.query[key];
}
if (req.body && req.body[key]) {
return req.body[key];
}
}
function GetTimeStamp() { return new Date().getTime(); }
web.use(bodyParser.json({ limit: ‘50mb’ }));
web.use(bodyParser.urlencoded({ limit: ‘50mb’, extended: true }));
//服务配置
web.use(compression(({
filter: function (req, res) {
if (req.headers[‘x-no-compression’]) {
return false;
}
return compression.filter(req, res);
}
})));
//HTTP 推流
web.use("/ueditor", ueditor(path.join(__dirname, ‘upload’), function (req, res, next) {
if (!req.session.sign) {
res.send({ msg: “没有权限”, code: 1001 });
res.end();
return;
}
// ueditor 客户发起上传图片请求
switch (req.query.action) {
case ‘uploadimage’:
{
//var foo = req.ueditor;
// var imgname = req.ueditor.filename;
var img_url = ‘/image/’;
//你只要输入要保存的地址 。保存操作交给ueditor来做
res.ue_up(img_url);
}
break;
case ‘listimage’:
{
var dir_url = ‘/image/’;
// 客户端会列出 dir_url 目录下的所有图片
res.ue_list(dir_url);
}
break;
case ‘uploadfile’:
{
var img_url = ‘/file/’;
//你只要输入要保存的地址 。保存操作交给ueditor来做
res.ue_