gpt4 book ai didi

javascript - 表已添加到 MYSQL,但在发布时返回 500

转载 作者:行者123 更新时间:2023-11-29 21:54:00 25 4
gpt4 key购买 nike

我正在使用 Node 模块 KNEX 进行 MYSQL 调用。我希望用户能够添加自己的自定义表格。我可以向 MYSQL 添加包含所有列的数据库,但在我的控制台中出现 500 内部服务器错误。

这是我的自定义文件 knex.js,它访问 MYSQL 数据库:

knex.js

var knex = require('knex')({
client: 'mysql',
connection: {
host: 'localhost',
user: USER,
password: PASSWORD,
database: 'tasks'
}
});

exports.createUserTable = function(x){
console.log(x);
knex.schema.hasTable(x.id).then(function(exists) {
if (!exists) {
return knex.schema.createTable(x.id, function(t){
t.increments();
t.string(x.type, 50);
for (var y in x.val){
t.string(x.val[y], 255);
}
t.timestamps();
});
} else {
return console.log("Error!");
}
});
};

正如我之前提到的,数据库被创建,所以这个函数似乎工作正常。接下来的代码接收来自 angular.js 的 post 请求。数据被编译成一个名为 table 的变量,并且 table 被发送到 knex.createUserTable()。但是,控制台中没有显示任何值,并且返回了 500 错误:

tables.js

router.route('/addTable')
.post(function(req, res){

//code above omitted
var knx = knex.createUserTable(table);

knx.then(function(c) {
console.log(c);
}).catch(function(err){
console.log("Error: " + err);
}).done(function(){
console.log("Mission accomplished!");
res.status(200).end();
});
});

最佳答案

我找到了答案。最外层的函数也应该返回。

   return knex.schema.hasTable(x.id).then(function(exists) {
if (!exists) {
return knex.schema.createTable(x.id, function(t){
t.increments();
t.string(x.type, 50);
for (var y in x.val){
t.string(x.val[y], 255);
}
t.timestamps();
});
} else {
return console.log("Error!");
}
});

关于javascript - 表已添加到 MYSQL,但在发布时返回 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com