2013-01-10 1 views
22

私はnode.js + expressアプリを持っていて、npmでjQueryをインストールしました。私はjQueryのを使用し、私は `のjQuery「が定義されていない取得するJavaScriptを含んでHTMLファイルのヘッダにExpressアプリケーションでnpmとともにインストールされたjQueryの使い方は?

var jquery = require('jquery'); 

を使用app.jsファイル内

。 注文のメーターですか、何か不足していますか?

+0

あなたはお話をしていますか?あなたのJavaScriptコードを投稿できますか? –

+1

主な質問は、なぜノードでjQueryを使いたいのですか?これは、古いJavaScript仕様用に設計された多くのコードをブラウザ互換に実行します。 これは興味深いことがあります:[nodejsサーバー上のCPU使用率の削減](http://stackoverflow.com/questions/14103617/reduction-of-cpu-utilization-on-a-nodejs-server/14112729) たとえば、[Node.jsのオブジェクトのクローン作成](http://stackoverflow.com/questions/5055746/cloning-an-object-in-node-js/14280000#)のように、サーバー側でjQueryを使用してできることはほとんどあります。 14280000)、Underscoreを使用することもできます。 – esp

+0

@esp私が理解していないのは、サーバーとクライアントが異なるjQueryファイルを使用していることです。NPMを使用してインストールすると、クライアント側でjQueryが提供されると思ったのです – ilyo

答えて

19

jQuerynpmと一緒にインストールするときは、アプリケーションのサーバー側でjQueryを使用したいからです(例:ファイル内)。あなたはまだそのようなあなたのウェブページにjQueryを追加する必要があります。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 

あなたはクライアント側でそれを使用したい場合。 Jadeを使用している場合は、スクリプトタグをテンプレートに追加します。

+0

jqueryをサーバー側で使用する理由は? –

+1

@GovindRai HTMLの生成、文字列内のDOMの操作などあなたがもっと知りたいのであれば、このライブラリを見てください。 これはサーバ側のJQueryの実装です:https://github.com/cheeriojs/cheerio。 –

31

あなたはjqueryのNPMモジュールは特急アプリによって提供されるようにしたい場合は、(あなたのケースapp.jsで)サーバスクリプトに次の行を追加します。その後

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/')); 

あなたのhtmlファイルに含めることができます:

<script src="/jquery/jquery.js"></script> 
+1

'app.use( '/ jquery'、express.static(__ dirname + '/ node_modules/jquery/dist /'));そうでなければ404 –

+1

@JuanPicadoありがとう!私は自分の答えを更新しました。 –

+0

私はこれが受け入れられた答えであるべきだと思います – Andy

9

私はエクスプレス4.10.2を使用しています。私はLukasz Wiktorの答えに従ったが、それは私にとってはうまくいかなかった。私も含め、HTMLファイルに

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/')); 

:私はルカシュ・ソリューションを少し変更しなければならなかった

<script src="/jquery/jquery.js"></script> 

をそう/ jQueryの/ node_modules/jqueryの/ DIST /ディレクトリのマウントポイントです。

レイアウトテンプレートでapp.js

app.use('/assets', [ 
    express.static(__dirname + '/node_modules/jquery/dist/'), 
    express.static(__dirname + '/node_modules/materialize-css/dist/'), 
    ... 
]); 

で:NPMからのjQueryを使用する

3

ウェイ

<script src="/assets/jquery.min.js"></script> 
<script src="/assets/js/materialize.min.js"></script> 

は、あなたがこのコードのヘルプを願っています!

関連する問題