NodeJ。 module.export有问题;不是功能错误

时间:2019-07-09 19:52:17

标签: javascript node.js express

我已经编写了这段代码:

function newExercise(data){
    pool.query('INSERT INTO Exercises VALUES(?, ?)', [data, data], function(error, results, field){
        if(error) console.log(error);
    })
}

module.exports = {
    newExercise: newExercise,
}

但是当我从这里调用函数时:

Promise.all([exname, exdesc])
    .then( values => {
        router.get('/', function(req, res, next){
            var socket = req.app.get('socket');
            io = req.app.get('socketio');
            io.sockets.on('connection', function(socket){
                socket.on('message', function(message){
                    console.log("Ricevuto");
                    database.newExcercise(message);
                })
            })
            res.render('exercises', {title: 'Exercises', ex: values[0]});
        })
    })
    .catch(error => console.error(error));

我收到“ TypeError:database.newExcercise不是函数”,但我不明白为什么

4 个答案:

答案 0 :(得分:2)

对我来说,解决方案是删除循环引用。

答案 1 :(得分:1)

在上面的代码片段中,将函数定义为: newExercise,在第二个片段中,您将其称为newExcercise

这是一个简单的错字。

答案 2 :(得分:0)

请尝试以下操作:module.exports.newExercise = newExercise;

答案 3 :(得分:0)

文件名NewExercise.js module.exports = function newExercise(data){ pool.query('INSERT INTO Exercises VALUES(?, ?)', [data, data], function(error, results, field){ if(error) console.log(error); }) }

在另一个调用此函数的文件中, var newExercise= require('./NewExercise.js'); 你就叫它 newExercise(message)