我有一个名为" teteraQueryDb ()“的异步函数,它以如下方式从Db获取数据:/root/afolder/b文件夹/file.js函数导出方式如下: module.exports.teteraQueryDb =teteraQueryDb
当我尝试以相同的路径调用文件中的函数时,我这样做了,并且成功了:
const teteraProvDb = require('./readingProvTetera');
(async(teteraProvDb) =>{
var newTeteraProvDb = await teteraProvDb.teteraQueryDb().then((te) => {return te})
console.log(newTeteraProvDb)
})(teteraProvDb);但是从根开始做,我无法获取数据,并且我得到了“未定义”:
const teteraProvDb = require('./afolder/bfolder/readingProvTetera');
(async(teteraProvDb) =>{
var newTeteraProvDb = await teteraProvDb.teteraQueryDb().then((te) => {return te})
console.log(newTeteraProvDb)
})(teteraProvDb);这是readingProvTetera.js的配置:
const sqlite3 = require('sqlite3').verbose();
const dbRoute = '../../myDb.db'
function teteraQueryDb(){
let db = new sqlite3.Database(dbRoute, err =>{
console.log(err)
})
return new Promise (resolve =>{
db.all("SELECT DISTINCT * FROM tetera", (err, rows) =>{
if(err){
console.log("Something went wrong with the query");
}
resolve(rows)
})
})
db.close()
}
module.exports.teteraQueryDb = teteraQueryDb为什么?我是不是遗漏了什么?
发布于 2021-01-09 14:41:56
./不是根路径,而是当前文件夹路径。所以当你写路径./readingProvTetera的时候,它意味着从当前文件夹加载数据库。path ./afolder/bfolder/readingProvTetera表示从当前文件夹的文件夹b文件夹加载数据库。
根路径可以通过console.log(process.env.PWD)检查。因此路径可以是${process.env.PWD}/afolder/bfolder/file.js。
https://stackoverflow.com/questions/65639862
复制相似问题