2017-04-05 21 views
2

index.jsと呼ばれるノードアプリケーションがあります。しばらく前に、私はウェブサイトのテンプレートと私のノードアプリケーションを一緒にマージすることに決めました。以下のコードを使用して、ノードアプリケーション(index.js)に他のパスをロードすることができます。クライアント側のjavascriptからノード関数を呼び出す方法は? (HTML)

var express = require('express'); 
var app = express(); 
app.use('/assets', express.static(path.join(__dirname, '/assets'))); 
app.use(express.static(path.join(__dirname, '/'))); 

は今、私は私のアプリはassetsフォルダとフォルダ内のコンテンツにアクセスすることが可能であることを意味Expressを使用して、異なるHTMLページを提供することができています。

ここで、assetsフォルダにはjs、cssなどと呼ばれるその他のフォルダが含まれています... assetsにあるjsフォルダのすべてのJavaScriptコードがHTMLテンプレートによってロードされています。 javascriptコードはHTMLファイルに書き込まれていないことに注意してください。ここではスクリプトが私のHTMLコードにトリガーされるかの例です:

<script src="../../assets/js/test.js"></script> 
<script type="text/javascript"> 
     $(document).ready(function(){ 
      test.theFunction(); 
     }); 
    </script> 

そして、ここで次のディレクトリ内のJavaScriptコードは次のとおりです。

// assets/js/test.js 
test = { 
    theFunction: function() { 
    res.send("finally..."); 
    console.log("sup?"); 
    } 
} 

私はtest.jsからindex.js内部に次の関数を呼び出すようにしようとしています:

// /index.js 
app.get("/hey", function(req, res) { 
    res.send("wassaaa!!"); 
}); 

これまでのところ、私は、次のコードを試してみたが、それは関数を呼び出していません。

$.get('/hey').success(function(response) { 
    $scope.final = response; 
    console.log(response); 
    }); 

私もindex.jsmodule.exportsを試みたが、私はtest.jsでそれを必要とするとき私は、クライアント側のものを必要とすることはできませんというエラーを取得します。

require.jsに関するいくつかの例も見てきましたが、例ではほとんどjsファイルに直接ではなくHTMLファイルにrequire.jsをロードする方法について説明しています。それをまとめると

は、ここで私が起こるしたいものです:HTMLファイルがtest.jsに機能をトリガし、test.jsindex.jsからいくつかのデータを取得し、再度、HTMLファイルに渡します...私はJavaScriptを書き込まないようにしようとしていますHTMLファイル内のコード。

私が簡単なやり方で達成しようとしていることを誰もが知っている場合、私は提案にもオープンしています。ありがとうございます...

答えて

0

test.jsに関数を書き込んで、index.jsにインポートしてください。たとえば、 "wassaaa !!"を返す関数getResponse()があります。 test.jsとindex.jsでの使用res.send(test.getResponse())

+0

もう少し説明してください。私はtest.jsの関数をindex.jsにインポートすることで何を意味するのかよく分かりません。私はmodule.exportsを言及し、ブラウザ(クライアント側)にロードする際にエラーが発生するため、動作しないように要求します。私に例を挙げてください。 – bbkrz

+0

ES6を翻訳すると仮定すると、 'export default {something}'を使うことができ、index.jsでは 'test.js 'の' import {something}'を使うことができます –

関連する問題