javascript - 将查询结果传递到另一个node.js页面

标签 javascript jquery node.js database

我有两个 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 问题都没有将函数变量传递到其他文件,请帮忙

最佳答案

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

关于javascript - 将查询结果传递到另一个node.js页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41503687/

相关文章:

javascript - 设置访问html页面的限制

javascript - 如何在 Google Maps API Javascript 中按城市获取 GPOINT

javascript - 使用 DataTable search() 搜索唯一值

node.js - 如何正确处理 nodejs 中的 SequelizeConnectionError

mysql - 有适合 Node.js 的 DAL 或 DAL/ORM 吗?

node.js - 有没有办法从 Microsoft Bot Framework 中的 WaterfallStepContext 主动结束提示,即使用计时器或事件

c# - 将数据数组从 Javascript 传递到 C#

javascript - Chrome 扩展程序的跟踪 URL

javascript - 悬停和单击时桌面和自适应菜单的工作不正确

jquery - 使用 jquery 创建/渲染 html 表单