过去几天,我一直在学习使用 Angular 6 和 NodeJS (与 ExpressJS )一起使用。为此,我决定使用 Angular 6 (有一个表单)创建一个前端,目的是通过以下方式将信息来回传递到我的 PHPMyAdmin 数据库中我通过 NodeJS 创建的API的使用。 从标题中可以看到,尝试提交表单信息时出现以下错误:
“ 未处理的拒绝TypeError:回调不是函数”
我用于发布操作的代码是从另一个功能相似的API中获取的,数据库接收了question_id和user_id,但不会注册问题答案(这是最终目标)。 无需费力,这是获取和发布的代码:
const config = require('../config/config');
const knex = config.db.knex;
const async = require('async');
class TestModel {
getQuestions(callback) {
knex('question')
.select('id', 'libelle')
.orderBy('id', 'asc')
.then((data) => {
callback(data);
});
}
addResponse(reponse, callback) {
knex('reponse')
.insert({
id_user : 1,
id_question : reponse.id,
libelle: reponse.answer,
}).then((data) => {
callback(data);
});
}
}
module.exports = new TestModel();
剩下的就是这里了
app.post('/quiz', function(req, res, next){
var answers = req.body;
console.log(answers)
for(var i = 0; i<answers.length; i++)
{
var obj = answers[i];
Test.addResponse((obj,result) => {
});
}
res.json({reponseserveur:'True'});
});
仅供参考,“响应”表示响应,“自由”表示标签。 预先感谢您的帮助!
答案 0 :(得分:2)
正确的语法是
Test.addResponse(obj, (result) => {
});
正在工作:
答案 1 :(得分:1)
Test.addResponse((obj,result) => {})
好像您将回调作为第一个参数(而不是response
)。应该是第二。
您可能想做:
Test.addResponse(res, (obj,result) => {})