gpt4 book ai didi

javascript - 从 Node js 中的单独文件获取回调

转载 作者:行者123 更新时间:2023-11-29 10:35:49 24 4
gpt4 key购买 nike

我的 Node js 应用程序中有两个文件 server.jsdatabase.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)
});

//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','darren@yahoo.in','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")
}
};

我需要从database.js中的insertUser函数进行回调,这样我就可以调用res.end(“插入数据”)。然而 con.query 似乎是异步的,因此当我尝试从 server.js 中的 get/insertuser 将结果记录到 server.js 时,我得到一个空白值

data inserted
insert user called
module exported
result {}
data inserted

最佳答案

使用 promise 。可以是原生的,也可以是来自库的。

以下是如何通过 Promise 做到这一点:

insertUser: function(){
return new Promise(function(reject, resolve){
var SQL_insert_user = "insert into users(username,useremail,usermobile,userpassword,activetoken) values('darren','darren@yahoo.in','980000000','password','ASKDO5615F')";
con.query(SQL_insert_user,function(err,result){
if(err) reject(err);
else resolve(result);
});
});
},

然后你可以像这样在其他文件中使用它:

insertUser()
.then(function(result){
// do something with the result
})
.catch(function(err){
// Oh no! there was an error!
});

关于javascript - 从 Node js 中的单独文件获取回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46448597/

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