いくつかのファイル(index.htmlとws.js [サーバを設定する])を設定した後、私のウェブサイトが使用する追加のJSファイル。私はrequire()
追加のファイルにしようとしましたが、役に立たない。 node ws.js
を実行すると、サーバーが起動し、index.htmlが表示されますが、ボタン(run.jsで定義された機能を持つ)は "replace is undefined"と表示します。私はコマンドnode ws.js
でサーバを実行し、URL localhost:8080
でウェブサイトにアクセスします。もともと私はモジュールの輸出を持っていませんでしたが、それはまだ動作しませんでした。私はindex.htmlをダブルクリックするだけで、これがすべて動作するようになったので、ローカルで動作することがわかりました(正しい場合)。ここでウェブサイトはローカルに動作しますが、NodeJSウェブサーバではありません。初心者
は私のws.jsファイルです:ここで
var http = require("http");
var fs = require("fs");
var events = require("events");
var serveStatic = require("serve-static");
var eventEmitter = new events.EventEmitter();
var run = require("./run.js");
run();
http.createServer(function (request, response) {
fs.readFile('index.html', function(err, data) {
// Send the HTTP header
// HTTP Status: 200 : OK
// Content Type: text/plain
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
return response.end();
});
}).listen(8080);
// Console will print the message
console.log('Server running at http://127.0.0.1:8080/');
console.log(__filename);
console.log(__dirname);
(function() {
function hi() {
alert("This is working!");
}
})();
は私run.jsファイルです:
function run() {
function testerClicked() {
alert("Tester has been clicked!");
}
function replace() {
var temp = (document.getElementById("tester").innerHTML === "This is a button." ? "This button has been pressed!" : "This is a button.");
document.getElementById("tester").innerHTML = temp;
}
}
module.exports = run;
これは私がHTMLで関数を呼んでいる行です。
<button id='tester' onclick="replace()">This is a button.</button>
申し訳ありませんが、これは基本的な質問です。私はサーバとJavaScript/HTML/CSSについて学び始めました。
あなたはhtmlファイルを提供しているようですが、追加のjavascript /アセットファイルを提供していますか? – FrankerZ
JavaScriptファイルをindex.htmlにリンクしています。 「提供」はws.jsで行う必要がありますか? – musikreck
Webページにアクセスすると、ノードサーバーのindex.htmlファイルが応答してそのファイルをダウンロードします。あなたのindex.htmlに ''がある場合、ブラウザは 'bundle.js'(ws.jsファイルが扱えないもの)をリクエストするようにサーバに別のリクエストを行います。静的コンテンツを提供するための[this](https://github.com/expressjs/serve-static)をチェックしてみてください。 – FrankerZ