[英]How to turn a query result into a js variable (Javascript)
我一直在搜索这一天,基本上我没有希望。 我要做的就是将查询结果导出为字符串(基本上是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文件中做什么才能导入字符串? 看起来很简单,但我似乎做不到。
就像这样
module.exports.getKlanten = function(req, res){
console.log("zoekt naar klanten");
return "Hello world"; }
然后在您的外部.js文件中,您可以像这样导入它
const myModule = require('./JSFile');
像这样使用
console.log(myModule.getKlanten());
另外,请使用return语句,以便变量中包含字符串。
我假设您需要在其他地方以及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); }); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.