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>