-1
我有以下代碼:如何將此javascript模塊更改爲顯示模塊模式?
server.js:
var http = require("http");
function start() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, { "Content-Type": "text/plain" });
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
index.js:
var server = require('./server');
server.start();
我力圖把server.js變成揭示模塊模式:
var http = require("http");
var server = function() {
function start() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, { "Content-Type": "text/plain" });
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
return {
start: start
};
}();
但我得到一個錯誤:TypeError: server.start is not a function
我正在犯什麼錯誤?
謝謝。
爲什麼這樣做?這只是及時倒退,到我們有好的東西之前,比如實際的模塊。 – ndugger
您未輸出'server'? 'var server = require('./ server');''會導入一個空的對象,因爲你的模塊沒有'導出'任何東西。你知道模塊中的變量是* local *模塊嗎?只有導出的內容可以被其他模塊訪問。因此,在這裏添加一個IIFE來減少'start'範圍並不會增加任何價值。它真的只是使代碼不必要的複雜。 –
您能否提供一些關於「實際模塊」的含義的解釋?我並沒有試圖讓它變得不必要的複雜,但我認爲「揭示模塊模式」應該可以幫助解決這個問題? – Sako73