Node モジュール KNEX を使用して MYSQL 呼び出しを行っています。ユーザーが独自のカスタム テーブルを追加できるようにしたい。すべての列を含むデータベースを MYSQL に追加できますが、コンソールで 500 内部サーバー エラーが発生します。
これは、MYSQL データベースにアクセスするカスタム ファイル knex.js です。
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 からポスト リクエストを受け取ります。データはテーブルと呼ばれる var にコンパイルされ、テーブルは 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();
});
});