我们想实现一个提交代码的功能 这个功能有nodeserver 传到后边的server 验证 在返回给nodeserver

我们稍微修改一下ui

ATOM修改文件权限不够 用下面命令

我们

Controller

然后我们在restEditor的时候 删除编译的结果和运行的结果

OK

下面我们来完成这个绿色的提交按钮

我们希望用户点击提交按钮后触发一个事件,用户的代码(string)可以通过HTTP request或者RESTFUL api 调用与后端进行通信

和之前 getproblem或者addproblem一样 我们在dataservice中去实现

首先在editor中进行调用

绿色按钮和这个歌submit方法绑定

我们来调用方法 然后去dataservice中实现

对于用户代码我们有2个需要关心的一个是代码内容(string),另外一个叫language具体是那个语言

下面就是具体实现dataservice中的 buildAndRun()了

这只是调用 还没实现

现在去node server端去实现对应的实现

因为我们调用的api是 v1下的

所以我们去到

添加一下

然后我们去editor看看

我们发现 原来 我们没有注入dataservice

加上

刷新

发现res

说明调通了

我们知道实际上代码的运行和编译时是在更后边的server

我们的node server 只是起到一个转发请求的作用

说白了就是代client端发req 给我们真正要执行运行编译代码的server

那么如何实现呢

这里要引用一个包

谷歌

npm node-rest-client

npm官网又那个2个使用方法

//Example POST method invocation
var Client = require('node-rest-client').Client; var client = new Client(); // set content-type header and data as json in args parameter
var args = {
data: { test: "hello" },
headers: { "Content-Type": "application/json" }
}; client.post("http://remote.site/rest/xml/method", args, function (data, response) {
// parsed response body as js object
console.log(data);
// raw response
console.log(response);
});
// registering remote methods
client.registerMethod("postMethod", "http://remote.site/rest/json/method", "POST"); client.methods.postMethod(args, function (data, response) {
// parsed response body as js object
console.log(data);
// raw response
console.log(response);
});

POST method invocation

引入这个类

创建一个client

1注册使用

使用

2,不注册使用 直接用

我们先来安装这个lib

我们还是在rest .js

引用

这样 下面就可以做远程的rest调用了

这里是5000端口

现在我们把og-client连通og-server

og-server又使用了node-rest-client

能调用executor_server(localhost:5000)的api

response返回给dataservice

editor调用dataservice拿到结果

下面就是执行端executor_server

使用python做execution service

为何用python呢?因为他的库强大(支持docker) 使用方便

然后 轻量(Flask)

week4下新建文件存放 executor service

安装python的一个包管理器 pip

最新文章

  1. Python--循环语句
  2. paip.解决 数据库mysql增加列 字段很慢添加字段很慢
  3. Heritrix源码分析(七) Heritrix总体介绍(转)
  4. HW7.13
  5. 下面css hack的写法分别用于哪些浏览器
  6. Android内存优化之——static使用篇(使用MAT工具进行分析)
  7. node.js + socket.io实现聊天室一
  8. BZOJ 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛( BFS )
  9. BootStrap dateRangePicker时间范围控件
  10. [补档]暑假集训D7总结
  11. JavaScript系列-----对象基于哈希存储(<Key,Value>之Key篇) (1)
  12. 重构前VS重构后效果对比
  13. nginx的location配置root、alias用法和区别
  14. java.util.Collections.copy():列表List浅拷贝
  15. 搭建YUM仓库
  16. Myeclipse10.0版下载
  17. [git] 基本原理
  18. u-boot移植(七)---代码修改---存储控制器
  19. 如何利用FPGA进行时序分析设计
  20. java.lang.IllegalStateException: Restarter has not been initialized

热门文章

  1. hadoop之 mr输出到hbase
  2. scrapy 模拟登录后再抓取
  3. DF学Mysql(一)——数据库基本操作
  4. HDU 4870Rating(推公式)
  5. jquery学习笔记2
  6. 用Python操作Mysql
  7. C# 白话系列之——白话委托
  8. Error occured processing XML 'Cannot find class [springmvc.extention.BeanArgumentResolver]'.
  9. C# WinForm多线程(一)Thread类库
  10. ios新开发语言swift 新手教程
  11. C++Builder 中动态数组的使用(转)
  12. 第十一章 多GPU系统的CUDA C
  13. 基于LVDS/M-LVDS的数据通信
  14. spring MVC 原理及源码解析
  15. Linux平台 Oracle 18c RAC安装Part2:GI配置
  16. SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
  17. CentOS6.8安装360 pika
  18. WIN7系统有些文本乱码怎么办
  19. 使用cmake编译luabind
  20. 【spring】spirng中的常用工具类