如何将查询结果转换为js变量(Javascript)

时间:2017-09-19 10:41:37

标签: javascript node.js postgresql require

我一直在寻找这一天,我基本上没有希望了。 我想要做的就是将查询结果导出为字符串(基本上是dataString),这样我就可以在外部.js文件中作为字符串导入。

module.exports.getKlanten = function(req, res){
console.log("zoekt naar klanten");
pool.connect(function(err, client, done){
    if(err){
        return console.error('error fetching client from pool', err);
    }
    client.query("select * from abc.relations limit 5", function(err,result){
        done();
        if(err){
            return console.error('error running query', err);
        }            
        var dataString = JSON.stringify(result.rows);
        var count = Object.keys(result.rows).length;

        var klanten = result.rows;

        res
        .status(200)            
        .render("index", {dataString: dataString, klant: klanten, count: count});        

    console.log("done");
    })        
});

}

然后我在js文件中要做什么来导入字符串呢?它看起来很容易,但我似乎无法做到正确。

2 个答案:

答案 0 :(得分:0)

就像这样

module.exports.getKlanten = function(req, res){
console.log("zoekt naar klanten");
return "Hello world"; }

然后在您的外部.js文件中,您可以像这样导入它

const myModule = require('./JSFile');

并像这样使用

console.log(myModule.getKlanten());

另外,使用return语句,以便在变量中包含一个字符串。

答案 1 :(得分:0)

我假设您需要在其他地方使用相同的函数,并且还需要http处理程序,因此将其拆分为三个文件。



//getKlanten.js
module.exports.getKlanten = function(){
    return new Promise(function (resolve, reject) {
        pool.connect(function(err, client, done){//make sure pool is avialble here
            if(err){
             console.error('error fetching client from pool', err);
             reject(err);
            }
            client.query("select * from abc.relations limit 5", function(err,result){
                if(err){
                    console.error('error running query', err);
                    reject(error);
                }            
                var dataString = JSON.stringify(result.rows);
                var count = Object.keys(result.rows).length;
                var klanten = result.rows;
        
                var data = {dataString: dataString, klant: klanten, count: count}      
                resolve(data);
            })        
        });
    })
}

//in external.JS
var getKlanten = require('getKlanten');
getKlanten().then(function(object) {
    console.log(object);
}, function(err){
    console.log(err);
})

//in http handler file

var getKlanten = require('getKlanten');

module.exports = function(req,res) {
    getKlanten().then(function(data) {
        res
        .status(200)            
        .render("index", data);
    });
}