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

21 week4 submit buidAndRun() node-rest-client的更多相关文章

  1. 《Node.js核心技术教程》学习笔记

    <Node.js核心技术教程>TOC \o "1-3" \h \z \u 1.章模块化编程 2019.2.19 13:30' PAGEREF _101 \h 1 08D ...

  2. 我用的一些Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...

  3. Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...

  4. spark on yarn,client模式时,执行spark-submit命令后命令行日志和YARN AM日志

    [root@linux-node1 bin]# ./spark-submit \> --class com.kou.List2Hive \> --master yarn \> --d ...

  5. faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]

    faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shap ...

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

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

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

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

  8. [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站

    原文: http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 原文的源代码在此 太多的教程教你些一个Hello, World!了, ...

  9. [Node.js] Node + Redis 实现分布式Session方案

    原文地址: http://www.moye.me/?p=565 Session是什么? Session 是面向连接的状态信息,是对 Http 无状态协议的补充. Session 怎么工作? Sessi ...

随机推荐

  1. VMware安装CentOS7踩坑

      1.VMware安装Centos7加载界面不显示,但有快照 单击“开始”,运行中输入cmd. 然后输入命令 netsh winsock reset. 重启计算机. 2.nat模式网络问题     ...

  2. ZooKeeper系列(6):ZooKeeper机制架构

    一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制.ACL的 ...

  3. C#截取字符串按字节截取SubString

    public static string CutByteString(string str,int len)     {       string result=string.Empty;// 最终返 ...

  4. IDEA Git 配置及使用

    1.下载并安装 Git 2.新建项目 3.配置版本控制器 4.新建github仓库 5.定位到项目根目录,执行命令 创建git仓库时忘记添加 .gitignore 怎么办? vi .gitignore ...

  5. 初级安全入门——SQL注入的原理与利用

    工具简介 SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器.它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文 ...

  6. uWSGI, Gunicorn, 啥玩意儿?

    因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...

  7. 安装Thinkphp5

    Thinkphp完全开发手册地址:https://www.kancloud.cn/manual/thinkphp5/118006 1.安装扩展mbstring扩展:sudo apt-get insta ...

  8. Spring之jdbcTemplate:查询的三种方式(单个值、单个对象、对象集合)

    JdbcTemplateDemo2.java package helloworld.jdbcTemplate; import org.springframework.jdbc.core.JdbcTem ...

  9. appium运行时每次默认弹出appiumsetting与unlock重装,关闭这两个步骤的方法

    找到appium安装目录,可以在 appium 源码里(C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android)注释 ...

  10. 爬虫概念 requests模块

    requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...