基于nodejs开源IDE

本文介绍了作者基于Node.js创建一个接口管理器的初衷、过程和思考,目标是让前端人员能直接编写SQL生成接口,避免后端人员的参与。项目初期采用Express,后续计划升级到Koa,并依赖MongoDB作为数据库。作者希望这个小型IDE能得到进一步完善,成为国产解决方案。
摘要由CSDN通过智能技术生成

#原因
写了多年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_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tufeibobo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值