如何正确导入javscript函数并将其用于node.js脚本?

时间:2018-05-18 22:49:28

标签: javascript node.js socket.io

所以我在javascript文件中有一个时间戳功能,返回的日期看起来像MM/DD/YY

我希望tom导入函数返回到另一个脚本(node.js)并在脚本运行时显示它。

但每当我启动node.js程序时,我会得到类似:[object Object]的内容,我不知道它来自哪里......

以下是timeStamp.js

function timeStamp() {
    let now = new Date();
    let date = [ now.getMonth() + 1, now.getDate(), now.getFullYear() ];
    let time = [ now.getHours(), now.getMinutes(), now.getSeconds() ];
    let suffix = ( time[0] < 12 ) ? "AM" : "PM";
    time[0] = ( time[0] < 12 ) ? time[0] : time[0] - 12;
    time[0] = time[0] || 12;
    for ( var i = 1; i < 3; i++ ) {
        if ( time[i] < 10 ) {
            time[i] = "0" + time[i];
        }
    }
    return date.join("/") + " " + time.join(":") + " " + suffix;
}

这是node.js脚本

let io = require('socket.io').listen(process.env.port||5000);

var date = require('./timeStamp');

io.on('connection', function(socket) {

    console.log('Date is ...'+date);

    socket.on('data',function (data , callback) {
        console.log(`"${data}" was received ...`);
        callback(true);
    });
});

如何修复此错误或我做错了什么或丢失了什么?

3 个答案:

答案 0 :(得分:3)

您需要将timeStamp函数添加到exports对象,然后您就可以在任何所需文件中使用它。这就是你如何做到的

module.exports = timeStamp;

timeStamp.js文件中。

这就是你在节点脚本中调用该函数的方法

var date = require('./timeStamp');
date();

答案 1 :(得分:2)

John | 555-555-5555 | email1@website.com John | 555-555-5555 | email2@website.com John | 555-555-5555 | email3@website.com 添加到timeStamp.js文件中, 然后你需要在module.exports = timeStamp;语句中做date()。

答案 2 :(得分:1)

你错过了:module.exports = timeStamp;没有它,使用require时会导出一个空对象,这就是你获取[Object object]

的原因

&#13;
&#13;
console.log('Date is...' + {});
&#13;
&#13;
&#13;

除此之外,你需要调用日期函数,否则你将打印实际的函数代码。

console.log('Date is...' + date());

&#13;
&#13;
function timeStamp() {
    let now = new Date();
    let date = [ now.getMonth() + 1, now.getDate(), now.getFullYear() ];
    let time = [ now.getHours(), now.getMinutes(), now.getSeconds() ];
    let suffix = ( time[0] < 12 ) ? "AM" : "PM";
    time[0] = ( time[0] < 12 ) ? time[0] : time[0] - 12;
    time[0] = time[0] || 12;
    for ( var i = 1; i < 3; i++ ) {
        if ( time[i] < 10 ) {
            time[i] = "0" + time[i];
        }
    }
    return date.join("/") + " " + time.join(":") + " " + suffix;
}

// In node use module.exports here
// module.exports = timeStamp;

// This will print the function code
console.log('Date is...' + timeStamp); 

// This will print the correct date
console.log('Date is...' + timeStamp());
&#13;
&#13;
&#13;