2017-05-18 4 views
0

キャンバス要素にグラフを描画したいと思います。私のジェイドファイルには、次のものが含まれます。node-js/Expressのキャンバスにグラフィックを描画する

div 
    canvas 

をNode.jsのWebアプリケーションでの私のindex.jsファイルでは、私は次のことを試してみました:

var canvas = document.getElementById('canvas'); 
var context = canvas.getContext('2d'); 
context.beginPath(); 
context.strokeStyle = "rgba(255, 0, 0, 1)"; 
height = canvas.height; 
width = canvas.width; 
context.moveTo(0, 0); 
context.lineTo(width, height); 
context.lineWidth = 1; 
context.stroke(); 

しかし、 "文書" を認識できません。私の質問は、私の.jsファイルの "キャンバス"への参照を取得する方法です。実際のチャートは、簡潔にするために上に示した単純な線描画コードよりも複雑であることに注意してください。グラフのデータは、サーバー側のindex.jsファイルで生成されます。したがって、チャートはサーバー上に作成されます。

答えて

1

NodeJSは、表示されたページに描画するためのユーザーブラウザへの参照を取得できません。 Javascriptですが、NodeJSはサーバー側で実行されます。同じコードをHTMLページ内に記述する必要があります。

バックエンドのNodeJSロジックからデータを取得する必要がある場合、Javascriptは関連するデータをフェッチするためにNodeJSサービスを呼び出す必要があります。

+0

私は同じコードをindex.jsファイルに次のように書きました。res.render( 'chart'); console.log( "描画図"); var canvas = document.getElementById( 'canvas'); var context = canvas.getContext( '2d'); context.beginPath();それは私に "ドキュメント"のエラーを与える – abcom

+0

私はまた、コードを追加しようとしました - var context = canvas.getContext( '2d');私のヒスイのファイルに 。それは私にエラー "getContext"が定義されていません – abcom

+0

'index.js'はサーバ側で実行されるので、クライアントブラウザにアクセスすることはできません。あなたのウェブページは別々でなければならず、時には一緒に異なるアプリケーションでなければなりません。 Jadeは静的コンテンツ用のシンプルなテンプレートエンジンであり、動的ビューを許可しません。特定のURLを作成したHTMLページにルーティングし、HTML内でコードを実行するには、 'express 'の' router'を使います。ただし、HTMLはNodeJSバックエンドに直接アクセスすることはできません。 NodeJS Webサービスをホスティングすることによっても同じことが行われなければなりません。 –

関連する問題