【问题标题】:Passing queried result to another node.js page将查询结果传递到另一个 node.js 页面
【发布时间】:2017-01-06 10:29:22
【问题描述】:

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

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问题都没有传递给其他文件的函数变量,请帮助

【问题讨论】:

  • 使用callback(row)并致电person1.getdata(function(data){ console.log(data); })
  • @MukeshSharma person1.getdata(console.log); 更短:)。不确定它是否能解决任何问题。
  • 是的@PierreC。谢谢(y)
  • 您是否出现任何错误?我在我的电脑上做了一个小测试,你的代码似乎很好。我没有向数据库发出任何请求。
  • @PierreC。没有错误,只是查询的异步调用给了我返回数据的问题

标签: javascript jquery node.js database


【解决方案1】:

您正在使用异步方法 (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);
});

【讨论】:

  • 我要奖励你很多和我有同样问题的 stackoverflow 问题,我希望你笑他们的回答并帮助提问者解决他的问题,因为我只花了 48 小时没有发帖这个问题,我要感谢你无数次,因为你救了我的工作!字面上地! PS请投票赞成这个问题,因为我看到了很多对这个确切问题的间接答案,
  • @VishwanthIronHeart 很高兴我能帮上忙!如果您还没有,请花一些时间了解异步调用。这并不难,但你必须在你的脑海中真正清楚。
  • 我会的,问题是,我有这个奇怪的项目细节需要使用 alexa 来充当个人助理,这是解决它的第一步是连接数据库(与任何项目)。由于截止日期很短,我只是想了解目前需要什么,并且由于以前不需要异步,所以我偶然发现了这个简单的问题,我相信这对你来说很容易吧?如果我有时间浏览文档,我就不会问这个问题了!还是谢谢
  • 我还有一个问题,与相同文件的执行顺序有关,我应该发布一个新问题还是在这里帮我?
猜你喜欢
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 2018-02-18
相关资源
最近更新 更多