tag:forum.selfhtml.org,2005:/self
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen – SELFHTML-Forum
2017-04-13T16:34:32Z
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691992?srt=yes#m1691992
hmm
2017-04-13T13:11:38Z
2017-04-13T13:11:38Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>Hi,</p>
<p>habt ihr mal eine Anleitung wie ich mit einem serverseitigem JavaScript ein auf dem Server liegendes Python Script ansprechen kann?</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691994?srt=yes#m1691994
chorn
2017-04-13T13:20:52Z
2017-04-13T13:20:52Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>sowas wie node.js mit child_process.exec?</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692004?srt=yes#m1692004
hmm
2017-04-13T14:16:16Z
2017-04-13T14:16:16Z
Auf meinem Windows Server läuft das nicht...
<p>Das ganze läuft jetzt auf meinem Ubuntu Server, aber auch meinem Windows Server nicht:</p>
<pre><code class="block language-javascript"><span class="token keyword">var</span> express <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'express'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> app <span class="token operator">=</span> <span class="token function">express</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> shell <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'shelljs'</span><span class="token punctuation">)</span>
<span class="token comment">//const addon = require('./build/Release/hello');</span>
<span class="token comment">//app.use(app.router);</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/css"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/css'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/js"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/js'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/img"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/img'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">sendfile</span><span class="token punctuation">(</span><span class="token string">'index.html'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">root</span><span class="token operator">:</span> __dirname <span class="token operator">+</span> <span class="token string">"/"</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/app'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">setHeader</span><span class="token punctuation">(</span><span class="token string">'Content-Type'</span><span class="token punctuation">,</span> <span class="token string">'application/json'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> str <span class="token operator">=</span> shell<span class="token punctuation">.</span><span class="token function">exec</span><span class="token punctuation">(</span><span class="token string">'python test.py'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>stdout<span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
res<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">antwort</span><span class="token operator">:</span> str<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//addon.hello()</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">listen</span><span class="token punctuation">(</span><span class="token number">8080</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>Fehlermeldung:</p>
<p>events.js:160</p>
<pre><code> throw er; // Unhandled 'error' event
^
</code></pre>
<p>Error: listen EADDRINUSE 0.0.0.0:8080</p>
<pre><code>at Object.exports._errnoException (util.js:1026:11)
at exports._exceptionWithHostPort (util.js:1049:20)
at Server._listen2 (net.js:1257:14)
at listen (net.js:1293:10)
at Server.listen (net.js:1389:5)
at EventEmitter.listen (D:\home\site\wwwroot\node_modules\express\lib\application.js:618:24)
at Object.<anonymous> (D:\home\site\wwwroot\server.js:36:5)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
</code></pre>
<p>Woran kann das liegen?</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691995?srt=yes#m1691995
hmm
2017-04-13T13:27:32Z
2017-04-13T13:27:32Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>Ich habe einen win32 Server auf dem NodeJs läuft. Clientseitig hab ich JavaScript und Serverseitig nochmal JavaScript.</p>
<p>Jetzt brauch ich Serverseitig noch eine Sprache mit sehr Mathematischen Bibliotheken (Optimierung, Geometerie, Numerische Mathematik, Differentialgleichungen etc.) also C++, R oder Python. C++ bekomme ich mit Node JS unter 32bit nicht zum laufen (unter Ubuntu 64bit schon) und auf den versuch R auf einem Win-Server zu installieren hab ich kein Bock gerad. Darum würde ich gerne Python nehmen.</p>
<p>Mein Serverseitiges JavaScript setzt meine index.html und mein Clientseitiges JavaScript. Das ClientSeitige JavaScript soll jetzt eine Python Funktion aufrufen können. (Später tausch ich das Python zeug dann vielleicht doch gegen C++ aus)</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691996?srt=yes#m1691996
TS
ts-self@online.de
https://bitworks.de
2017-04-13T13:32:53Z
2017-04-13T13:32:53Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>Hello,</p>
<p>wozu ist eigentlich <a href="http://documentup.com/shelljs/shelljs" rel="nofollow noopener noreferrer">shelljs</a> gut?</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es<br>
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.<br>
</div>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691997?srt=yes#m1691997
hmm
2017-04-13T13:33:02Z
2017-04-13T13:33:02Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>Mein server.js File sieht mit C++ aufruf so aus:</p>
<pre><code class="block language-javascript"><span class="token keyword">var</span> express <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'express'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> app <span class="token operator">=</span> <span class="token function">express</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> addon <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'./build/Release/hello'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>app<span class="token punctuation">.</span>router<span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/css"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/css'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/js"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/js'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/img"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/img'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">sendfile</span><span class="token punctuation">(</span><span class="token string">'index.html'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">root</span><span class="token operator">:</span> __dirname <span class="token operator">+</span> <span class="token string">"/"</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/app'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">setHeader</span><span class="token punctuation">(</span><span class="token string">'Content-Type'</span><span class="token punctuation">,</span> <span class="token string">'application/json'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
res<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">antwort</span><span class="token operator">:</span> addon<span class="token punctuation">.</span><span class="token function">hello</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">listen</span><span class="token punctuation">(</span><span class="token number">8080</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>Geht das so ähnlich mit Pythonfunktionen?</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1691999?srt=yes#m1691999
hmm
2017-04-13T13:43:56Z
2017-04-13T13:43:56Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>danke.</p>
<p>shell.echo("python test.py")</p>
<p>wie lese ich damit die antwort in der console?</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692002?srt=yes#m1692002
hmm
2017-04-13T13:57:47Z
2017-04-13T13:57:47Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>danke läuft!</p>
<pre><code class="block language-javascript"><span class="token keyword">var</span> express <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'express'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> app <span class="token operator">=</span> <span class="token function">express</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> shell <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'shelljs'</span><span class="token punctuation">)</span>
<span class="token comment">//const addon = require('./build/Release/hello');</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>app<span class="token punctuation">.</span>router<span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/css"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/css'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/js"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/js'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token string">"/boot/img"</span><span class="token punctuation">,</span> express<span class="token punctuation">.</span><span class="token function">static</span><span class="token punctuation">(</span>__dirname <span class="token operator">+</span> <span class="token string">'/boot/img'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">sendfile</span><span class="token punctuation">(</span><span class="token string">'index.html'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">root</span><span class="token operator">:</span> __dirname <span class="token operator">+</span> <span class="token string">"/"</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'/app'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">req<span class="token punctuation">,</span> res</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
res<span class="token punctuation">.</span><span class="token function">setHeader</span><span class="token punctuation">(</span><span class="token string">'Content-Type'</span><span class="token punctuation">,</span> <span class="token string">'application/json'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> str <span class="token operator">=</span> shell<span class="token punctuation">.</span><span class="token function">exec</span><span class="token punctuation">(</span><span class="token string">'python test.py'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>stdout<span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
res<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">antwort</span><span class="token operator">:</span> str<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//addon.hello()</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
app<span class="token punctuation">.</span><span class="token function">listen</span><span class="token punctuation">(</span><span class="token number">8080</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692001?srt=yes#m1692001
TS
ts-self@online.de
https://bitworks.de
2017-04-13T13:53:30Z
2017-04-13T13:53:30Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>Hello,</p>
<blockquote>
<p>shell.echo("python test.py")</p>
</blockquote>
<blockquote>
<p>wie lese ich damit die antwort in der console?</p>
</blockquote>
<p>Pipelining, Ausgabekanal angeben.</p>
<pre><code class="block language-shell">exec<span class="token punctuation">(</span><span class="token string">'some_long_running_process'</span>, function<span class="token punctuation">(</span>code, stdout, stderr<span class="token punctuation">)</span> <span class="token punctuation">{</span>
console.log<span class="token punctuation">(</span><span class="token string">'Exit code:'</span>, code<span class="token punctuation">)</span><span class="token punctuation">;</span>
console.log<span class="token punctuation">(</span><span class="token string">'Program output:'</span>, stdout<span class="token punctuation">)</span><span class="token punctuation">;</span>
console.log<span class="token punctuation">(</span><span class="token string">'Program stderr:'</span>, stderr<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es<br>
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.<br>
</div>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692003?srt=yes#m1692003
hmm
2017-04-13T13:58:39Z
2017-04-13T13:58:39Z
Serverseitiges JavaScript soll Serverseitiges Pythonscript ansprechen
<p>danke! das ist noch besser als dass was ich gerade gemacht habe</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692007?srt=yes#m1692007
hmm
2017-04-13T14:53:46Z
2017-04-13T16:14:16Z
Auf meinem Windows Server läuft das nicht...
<p>mit</p>
<p><code>app.listen(process.env.PORT || 8000);</code></p>
<p>ging die fehlermeldung unter dem win-Server weg. Aber leider stimmen die Routen nicht....</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692010?srt=yes#m1692010
hmm
2017-04-13T16:25:37Z
2017-04-13T16:25:37Z
Auf meinem Windows Server läuft das nicht...
<p>okay, fehler gefunden.…</p>
<p>var shell = require('shelljs')</p>
<p>da musste ein ";" zugefügt werden damit es auf dem win-server geht!</p>
https://forum.selfhtml.org/self/2017/apr/13/serverseitiges-javascript-soll-serverseitiges-pythonscript-ansprechen/1692013?srt=yes#m1692013
TS
ts-self@online.de
https://bitworks.de
2017-04-13T16:34:32Z
2017-04-13T16:34:32Z
Auf meinem Windows Server läuft das nicht...
<p>Hello,</p>
<blockquote>
<p>okay, fehler gefunden.…
var shell = require('shelljs')
da musste ein ";" zugefügt werden damit es auf dem win-server geht!</p>
</blockquote>
<p>Schön, dass Du das rückgemeldet hast. Das hilft den nächsten Suchenden. Mein +1 dafür :-)</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es<br>
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.<br>
</div>