我一直在寻找这一天,我基本上没有希望了。 我想要做的就是将查询结果导出为字符串(基本上是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文件中要做什么来导入字符串呢?它看起来很容易,但我似乎无法做到正确。
答案 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);
});
}