NodeJs.Проблема с модулем.экспорт;это не ошибка функции - PullRequest
0 голосов
/ 09 июля 2019

Я написал этот фрагмент кода:

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 не является функцией", но я не понимаю, почему

Ответы [ 3 ]

1 голос
/ 09 июля 2019

В приведенном выше фрагменте кода вы определили функцию как: newExercise, а во втором фрагменте вы называете ее как newExcercise.

Это простая опечатка.

0 голосов
/ 09 июля 2019

имя файла 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)

0 голосов
/ 09 июля 2019

Попробуйте следующее: module.exports.newExercise = newExercise;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...