我们想实现一个提交代码的功能 这个功能有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

转载于:https://www.cnblogs.com/PoeticalJustice/p/9489106.html

21 week4 submit buidAndRun() node-rest-client相关推荐

  1. Vue.js 3 ssr 中报错Hydration node mismatch: - Client vnode: div - Server rendered DOM:已解决

    使用nuxt框架+ element + vue3 出现该问题 解决方案 该问题其实是由于在开发阶段本地服务器的代码与浏览器的代码不一致导致的问题,可以执行一次build命令,可以解决该问题,实际到部署 ...

  2. MYSQL的集群的安装与配置(mysql-5.1.21)

    具体安装与配置: 1) 准备工作: 6台机器,IP地址分别为 192.168.0.(231-236) MGM节点:192.168.0.231(232) SQL 节点:192.168.0.233-234 ...

  3. k8s1.11.0安装、一个master、一个node、查看node名称是ip、node是扩容进来的、带cadvisor监控服务...

    一个master.一个node.查看node节点是ip# 安装顺序:先在test1 上安装完必要组件后,就开始在 test2 上单独安装node组件,实现node功能,再返回来配置test1加入集群, ...

  4. 全手动搭建Kubernetes集群——Master管理节点和Node工作节点部署

    目录 前言 一.Master管理节点需要安装的组件介绍 二.配置Master管理节点各组件模块 1.配置kube-apiserver组件 2.配置kube-controller-manager组件 3 ...

  5. 哪个websocket库与Node.js一起使用? [关闭]

    本文翻译自:Which websocket library to use with Node.js? [closed] Currently there is a plethora of websock ...

  6. mac node版本管理

    (0)简说 目前有n和nvm这两个工具可以对Node进行升级,以下简单介绍一下二者的使用. (1)n 安装很简单: $ sudo npm install -g n 另一种获取源码的方法安装: $ gi ...

  7. 认识Node.js中流

    认识Node.js中流 http://wwsun.github.io/posts/stream-in-nodejs.html?utm_source=tuicool&utm_medium=ref ...

  8. Windbg调优Kafka.Client内存泄露

    从来没写过Blog,想想也是,工作十多年了,搞过N多的架构.技术,不与大家分享实在是可惜了.另外,从传统地ERP行业转到互联网,也遇到了很所前所未有的问题,原来知道有一些坑,但是不知道坑太多太深.借着 ...

  9. node.js api接口_如何在Node.js API客户端中正常处理故障

    node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...

最新文章

  1. 阿里大佬告诉你,支付宝的架构到底有多牛逼!还没看完我就跪了!
  2. go标准库的学习-fmt
  3. arduino tft 方向_ESP32在Arduino环境下玩转 LVGL,ESP32移植LVGL详细教程
  4. matlab中箭头详细设置
  5. jms.jar 2.0_JMS API概述:JMS 1.x和JMS 2.x
  6. sql连表查询找不到关联字段时?
  7. html js 跳出框架,现在的web框架为什么把html和js又结合在一起了?
  8. [XA]读书感想:个人对敏捷软件开发宣言的理解
  9. MySQL优化三之MySQL配置
  10. java实训鉴定表_java实习自我鉴定材料定稿(资料4)
  11. 互联网晚报 | 9月14日 星期三 | ​理想汽车总裁5天抛售理想100万股港股;微信坚决抵制无底线追星;Phone15要改名?...
  12. css3中的属性选择器以及新增伪类
  13. 微信锁屏密码怎么设置
  14. Android缓存,删除网络依赖包缓存
  15. SPFA算法判断负权环(bfs_spfa,dfs_spfa)
  16. 关于tink的碰撞检测类【2】
  17. org.eclipse.wst.common.project.facet.core.xml
  18. PLSQL连接ORACLE报错ORA-12541:TNS:无监听程序
  19. php 不重复邀请码,PHP生成不重复的短邀请码函数
  20. Ingress详细介绍

热门文章

  1. win7为什么没有计算机,教你win7如何快速找出电脑没声音问题所在-win7之家
  2. linux 共享内存_盘点那些linux 后台开发类常见问题及知识点
  3. Java中继承、接口、多态的作用详解(纯理论)
  4. oracle 数据库日常巡检:数据库基本状况、oracle资源使用、数据备份结果、性能、cpu等、数据安全、归档日志、会话、SGA/PGA使用情况
  5. python标识运算符_讲解Python中的标识运算符
  6. matlab画扇区,NFCDemo NFC读写测试 ,自动读取每个扇区 块的值 matlab 238万源代码下载- www.pudn.com...
  7. 一周一论文(翻译 总结)— [SOCC 13] jVerbs Ultra-Low Latency for Data Center Applications 在JVM虚拟机上构建RDMA的verbs操作
  8. docker安装mysql指定_Docker安装MySql,并且使用外部客户端链接
  9. Linux中介绍who命令实例
  10. UML 对象模型图阅读指南 (转)