Ich habe zwei Datei in meinem Knoten js app server.js
und database.js
erhält einen Rückruf von einer separaten Datei in Knoten js
//server.js
var db = require('./database.js');
var express = require('express');
var app = express();
var server = app.listen(8081, '000.00.00.000',function(){
var host = server.address().address;
var port = server.address().port
console.log('App listening');
})
app.get('/',function(req,res){
res.end("Hello Jamian");
})
app.get('/insertuser',function(req,res){
console.log("insert user called")
var result = new db.insertUser();
console.log("result " + result)
});
und
//database.js
var mysql = require('mysql');
var con = mysql.createConnection({
host:"localhost",
user:"0000",
password:"0000",
database: "aaaa"
});
con.connect(function(err){
if(err) throw err;
console.log("DB Connected");
});
module.exports = {
insertUser: function() {
console.log("module exported");
var SQL_insert_user = "insert into users(username,useremail,usermobile,userpassword,activetoken) values('darren','[email protected]','980000000','password','ASKDO5615F')";
con.query(SQL_insert_user,function(err,result){
if(err) throw err;
console.log("data inserted");
return result;
});
},
bar: function() {
console.log("bar called")
}
};
Ich brauche einen Rückruf vom insert Funktion in der Datenbank .js, so kann ich ein res.end ("Daten eingefügt") aufrufen. jedoch scheint es con.query wird async, daher bin ich einen leeren Wert bekommen, wenn ich versuche, in server.js von get/insert in server.js führen loggt
data inserted
insert user called
module exported
result {}
data inserted
Mögliche Duplikat [Wie kann ich die Antwort ein Rück asynchroner Anruf?] (https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –
Sie müssen einen Rückruf oder Versprechen verwenden. –