javascript
  • html
  • node.js
  • httpresponse
  • 2017-09-21 6 views 0 likes 
    0

    私はNode.jsの初心者で、サーバで作業しています。 NodeJSのejsに出力ファイル(html)を返信しようとしています。私は、EJSでejsファイルにhtmlファイルで応答を返信し、ejsでiframeに表示する方法Node.js

    、私はコードの下のようなEJSにPythonのファイルを実行するためのHTTPリクエスト( 'POST')を送信ボタンを持って、以下

    <div class="form-group" style='margin-bottom:0px;'><div id='Button'><input type='button' class="form-control" value='Request' id="sendButton" onclick="save3()"/></div></div> 
    <form action="/saveText" method="POST" id="myForm"><input type="hidden" id="metrics_id" ng-repeat="obj in tags" value="{{obj.name}}" name="metrics_name"></form> 
    
    <script> 
        function save3(){ 
        console.log(document.getElementsByName("metrics_name")[0].value); 
        console.log(document.getElementsByName("metrics_name")[1].value); 
        console.log(myForm.getElementsByTagName('input').length); 
        } 
        $(document).on('click', '#sendButton', function(){ 
        $('#myForm').submit(); 
        }); 
    </script> 
    

    の詳細を説明しますPythonShellを使用して

    そして、それはapp.jsで実行するPythonスクリプトを呼び出します(Node.jsの)

    のNode.js

    app.post('/saveText', isLoggedIn, function(req, res){ 
        var pyshell = new PythonShell('/public/make_bokeh.py'); 
        pyshell.on('message', function(message){ 
        console.log(message); 
        }); 
        pyshell.end(function(err){ 
        if(err){ 
         throw err; 
        } 
        console.log("Finished"); 
        res.sendFile(); ------------------------>I want to send output file back to EJS 
        }); 
    }); 
    

    make_bokeh.pyから、make_bokeh.pyと同じディレクトリに出力htmlファイルを作成します。

    問題は、その出力ファイルでejsにHTTP応答を送り返し、iframeに入れたいということです。

    これは可能なのでしょうか、それとも考えですか?

    答えて

    1

    を行うことができます月:

    ノードJS

    . . . 
    pyshell.end(function(err){ 
    if(err){ 
        throw err; 
    } 
    console.log("Finished"); 
    var HTMLFileGeneratedByPython = fs.readFileSync(path.join(__dirname, relPath)); 
        res.render('template.ejs', { htmlFile: HTMLFileGeneratedByPython }); 
    }); 
    

    EJS

    答える私の質問のための
    <!-- HTML HEADER --> 
    <body> 
        <%= htmlFile %> 
    </body> 
    </html> 
    
    +0

    感謝。試してみましょう:) – paulc1111

    +0

    ボタンをクリックする前にejsに行くと、 'htmlFile is not defined 'と表示されてエラーが表示されます。 "<%= htmlFile%>"のように編集する必要がありますか? – paulc1111

    +0

    私はそれを持っていると思う...私は考えている。私は2番目に考えなければならない。 – paulc1111

    関連する問題