将查询结果传递给另一个node.js页面

时间:2017-01-06 10:29:23

标签: javascript jquery node.js database

我有两个javascript文件, main.js: - 执行数据库查询和存储的结果是“行” samp.js: - 一个调用main.js的 我的问题是,我如何将main.js中的“行”传递给samp.js,尝试了module.exports,原型,但无济于事,我知道这是一个简单的问题,但这些简单的问题并没有有文档,没有帮助就很难解决,

main.js:

var mysql=require('mysql');
var row1;
function person(){}
var con=mysql.createConnection({
    host:'localhost',
    user: 'root',
    password:'',
    database:'imd2'
});
con.connect();

person.prototype.getdata= function(callback)
{
    con.query("select * from users",function(err,rows)
    {
        //row1=rows;
        console.log(rows);
        //return(rows);
}
);
}
module.exports=person;

这里“console.log(rows)”工作,但是当我尝试将它返回到samp.js时,它不起作用

Samp.js

var person=require("./main");

var person1=new person();

person1.getdata()
//var x=person1.getdata()
//console.log(x)

你能告诉我我犯的错误在哪里,我搜索到的每个stackoverflow问题都没有传递给其他文件的函数变量,请帮忙

1 个答案:

答案 0 :(得分:0)

您正在使用异步方法(con.query),如果它是同步的。在异步方法中,您不能使用return语句返回值。你必须调用一个回调函数。

在main.js中:

person.prototype.getdata= function(callback)
{
    con.query("select * from users",function(err,rows)
    {
        callback(rows);
    });
}

在Samp.js:

person1.getdata(function(rows) {
    // use rows here
    console.log(rows);
});