2017-12-26 13 views
1

私は自己学習者です。Node.jsでテストファイルを実行する際に問題が発生しています。私は次のコマンドを使用しています: "ノード"。私は文書が定義されていないことが何を意味するのか分からない。この場合、ノードtest.jsと入力しています。どんな助けもいいだろう。私は次のエラーに直面しています:Node.jsでJSファイルを実行する

PS C:\Users\buddys\Desktop\Projects> node test.js 
C:\Users\buddys\Desktop\Projects\test.js:8 
    document.write("Metri loves you too baby!"); 
^

ReferenceError: document is not defined 
    at Object.<anonymous> (C:\Users\buddys\Desktop\Projects\test.js:8:4) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:389:7) 
    at startup (bootstrap_node.js:149:9) 
    at bootstrap_node.js:504:3 

私はindex.htmlを実行すると、JavaScriptはWebページに書き込んでいます。

index.htmlを

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>JavaScript Learning</title> 

    </head> 
    <body> 
    <h1>JS for Metri</h1> 
<p>blah blah blah</p> 
<div class="content"> 

</div> 

<!--place scripts at the bottom of the body unless big files. If it's a big files 
Metri, make a separate .js file and link it to the HTML page by using src attribute. --> 
<script src="test.js" charset="utf-8"></script> 
    </body> 
</html> 

test.js

var youLikeMetri = true; 
var age= 18; 
var enter = 'You are permitted to be legally drunk'; 
var almost = 'You may legally smoke but not drink' 
var exit= 'You are not permitted to be legally drunk'; 
//if statement if(condition){CODE BLOCK;} 
if (youLikeMetri){ 
    document.write("Metri loves you too baby!"); 
} 
//COMPARISON OPERATORS 
//==EQUAL TO !=NOT EQUAL TO !==NOT IDENTICAL 
//>=GREATER THAN OR EQUAL TO ||OR 
//<=LESS THAN OR EQUAL TO &&AND 
if (age >= 21){ 
    document.write(enter); 
} 
//elseif to create multiple conditions after first if. 
else if(age <= 20){ 
    document.write(almost); 
} 

else if (age < 18){ 
    document.write(exit); 
} 
//while loops are continuous if the condition is met. 
// while (condition){CODE BLOCK} 
while (age <10) { 
    console.log('You are less than 10'); 
    age++ 
    //adds one to age when age is > 10 it will continue down. 
} 
document.write('You are older than 10 now') 

答えて

1

文書には、WebブラウザでDOMに属し
をDOMしかし、あなたは、クライアント側のアプリにnodeJSモジュールを使用したい場合は、broserifyを使用することができます

2

document標準のJavaScriptの一部ではありません。ここに私のインデックスと.jsファイルです。これは、Webブラウザによって提供されるAPIです。

Node.jsはウェブブラウザではなく、documentオブジェクトを提供しません。

Node.jsからSTDOUTに書き込むには、process moduleを使用できます。 nodeJSはあなたがブラウザにアクセスすることはできませんクライアント側のJavaScriptはないので

process.stdout.write("Hello, world"); 
+0

私は何をしようとしているのですか?私はエディタですべてを動かそうとしていたので、ブラウザとエディタをやり直す必要はありませんでした。 –

+0

process.stdoutはドキュメントを置き換えます。正しい? –

+0

ここでは 'document。write'は良い事例では決して使用されない悪いメソッドです。 –

0

フロントエンド(test.jsを実行しているindex.html)とバックエンドの間に混乱があります。

ノードjsはバックエンド用です。あなたは、あなたのケースでindex.htmlとtest.jsの両方をブラウザに送信する "Webサーバー"を実装するものとして見ることができます。あなたのケースのための例の作業

:my_backend.js

として保存

var express = require('express') 
, http = require('http') 
, path = require('path'); 

var app = express(); 

app.set('port', process.env.PORT || 3000); 

app.use(express.errorHandler()); 
app.use(express.static(path.join(__dirname))); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

は実行します。

npm install express 

を今すぐ実行します。

node my_backend.js 

必ずあなたのことを確認してください他のファイル(index.html test.js)をmy_backend.jsと同じフォルダに保存します。

今、あなたのブラウザとタイプを開きます。

http://127.0.0.1:3000/ 

何それはあなたのローカルホストのポート3000でリッスンしてWebサーバーを作成するために、明示フレームワークを使用して、ちょうどあなたから要求されているすべてのリソースを検索してやっていますmy_backend.jsと同じフォルダにあります。

詳細については、node.js + expressチュートリアルを参照してください。

関連する問題