我已经编写了这段代码:
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不是函数”,但我不明白为什么
答案 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)