Javascript 节点JS需要未定义的函数
在第一次编写模块化JavaScript代码时(慢慢地从Java服务器代码转换为Node JS),我很难理解为什么这段代码不起作用 节点服务器代码:Javascript 节点JS需要未定义的函数,javascript,node.js,Javascript,Node.js,在第一次编写模块化JavaScript代码时(慢慢地从Java服务器代码转换为Node JS),我很难理解为什么这段代码不起作用 节点服务器代码: const wceTimer = require('./myTimer'); const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => {
const wceTimer = require('./myTimer');
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log('Server running at http://' + hostname + ':' + port + '/');
console.log(typeof wceTimer);
console.log(typeof wceTimer.getTime);
});
这是我的模块代码:
var myTimer = (function (){
var currentTimeMS = -1;
var timerInterval;
function getTime(){
return currentTime;
}
function getTimeFormatted(){
if(currentTime <= 0) {
return "undefined";
} else {
return new Date(currentTimeMS).toUTCString();
}
}
function advanceTime(){
if(currentTime <= 0) {
this.currentTimeMS = 946684800000;
} else {
this.currentTimeMS = this.currentTimeMS + 1000;
}
}
function startTimer(){
timerInterval = setInterval(advanceTime, 3000);
}
function stopTimer(){
clearInterval(timerInterval);
}
return {
startTimer: startTimer,
stopTimer: stopTimer,
getTime: getTime,
getTimeFormatted: getTimeFormatted
};
})();
var myTimer=(函数(){
var currentTimeMS=-1;
var时间神经;
函数getTime(){
返回时间;
}
函数getTimeFormatted(){
如果(currentTime您的模块没有导出任何内容:
module.exports = myTimer;
您的模块不导出任何内容:
module.exports = myTimer;
module.exports
-.虽然它实际上没有什么区别,但您不再需要IIFE,因为您的所有模块代码都已包含在它自己的范围内。您需要导出myTimer
module.exports
-.虽然它没有真正的区别,但您不再需要IIFE作为您的所有模块代码已经包含在它自己的范围内。您需要导出myTimer
这是导出Commonjs模块的方式,它们是Node.js中的模块这是导出Commonjs模块的方式,它们是Node.js中的模块