21 week4 submit buidAndRun() node-rest-client
、
我們想實現一個提交代碼的功能 這個功能有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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [雪峰磁针石博客]2018最佳12个开源
- 下一篇: NSArray 简单细说