2017-03-23 16 views
1

たとえば、PHPではPHPとJavaScriptコードを同じファイルに書き込むことができます。サーバー側とクライアント側の両方のJavaScriptコードをhtmlファイルに書き込む方法node.jsがサーバー側とクライアント側のスクリプトを認識する方法は?

+0

サーバーサイドのJSは、サーバマシン、クライアントのブラウザ上で実行されますJavaScriptクライアント側で実行されます。これについて考えてみてください! – Sikorski

+0

@Sikorskiあなたは正しいです。しかし、OPは、テンプレートエンジンがクライアントサイドのjavascriptとnode.jsをどのように区別しているのか混乱しています。 –

+0

@Bibek Subediあなたはnodejsに関して、htmlでサーバーサイドコードを書いていますか? – Sikorski

答えて

2

HandlebarsPugのようなテンプレートエンジンを探しているようです。

これらを使用すると、サーバーサイドロジックを使用してHTMLページをクライアントに送信する前にレンダリングできます。

+0

Pugを確認しました。私は、node.jsのhtmlでサーバー側とクライアント側のスクリプトを分けることができるタグがないことを理解しています。 PugやHandlebarsのようなライブラリを使うべきです。ありがとうございますAJ –

2

サーバー側とクライアント側の両方のJavaScriptコードをHTMLファイルに書き込む方法はありますか。

参照してください、NodeJsはDOMを持っていないサーバーとノードサーバーのjavascriptです。あなたのケースでは、サーバー用とブラウザ用の2つの場所用のJavaScriptを作成する必要があります。

commonJsモジュールはブラウザで実行できないため、サーバ(ノード)で使用することができます。

+0

実際には可能です。たとえば、c#はasp.net mvcのサーバサイド言語ですが、サーバ上でc#コードをマーキングするためにrazor engineを使用することができます。タグがnode.jsの標準になることができるならば、我々はhtmlのサーバーサイドスクリプトを示すことができます。ちょうどアイデア。私はちょうどnide.jsを学んでいます。ありがとうございました。 –

1

ここでは簡単な例として、簡略化のためにexpressを使用しましたが、一般的な考え方を理解できることを願っています。

サーバー:

var express = require('express'); 
var app = express(); 
var port = process.env.PORT || 3000; 
var server = app.listen(port, function() { 
    console.log('Started listen port: ' + port); 
}); 
app.get('/', function (req, res) { 
    res.sendFile(__dirname + '/index.html'); 
}) 

クライアント:

<html> 
<body> 
<div id="root"></div> 
<script> 
    console.log(200); 
</script> 
</body> 
</html> 
+0

私はindex.htmlがクライアント側で実行されることを理解しています。この時点で私は混乱しています。 index.htmlにサーバー側のコードも追加したいのですが、どうすればnode.js(Express)に通知できますか?たとえば、PHPではサーバ側のコードにタグを追加できます。 node.jsの場合、すべてのスクリプトはの間にあります.myの質問は非常にばかげているかもしれません。しかし、私はそれを私が使っているツールと比較することで学びたいと思っています。多分私は私の見解を変えるべきです。 –

+0

この場合は、テンプレートエンジン(ハンドルバー、ヒスイなど)を使用する必要があります。私はちょうど簡単な例を投稿しました。 –

+0

ありがとうございますウラジーミル –

関連する問題