最后,我尝试在一个页面上获得两个不同的data调用res.render。在这个过程中,我使用console.log来查看数据是否最终可以从res.render发送到页面。5个console.logs中有1个不起作用,#4,我不明白为什么。
这是我所拥有的...server.js代码
const uri = 'neo4j address';
const user = 'uname';
const password = 'pword'
const driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
const session = driver.session({ database: 'dbname' });
app.get('/page', async (req, res) => {
try {
const dbTitleResult = await session.run(`MATCH (db:Database)
RETURN db.wikiPageId as dbWikiPageId, db.Title as dbTitle Order By db.Title ASC`);
const dbTitleArr = dbTitleResult.records.map(({_fields}) => {
return {dbWikiPageId:_fields[0],dbTitle:_fields[1]};
});
const wikiPage = request('https://uname:pword!@wiki.com/api/content/id/child?expand=page', function (error, response, body) {
if (error) throw new Error(error);
const wikiAPI = JSON.parse(body);
//console.log(wikiAPI.page.results); //#1 THIS WORKS AND RETURNS THE EXPECTED DATA
const wikiData = wikiAPI.page.results.map(item => item);
//console.log(wikiData); //#2 THIS WORKS AND RETURNS THE EXPECTED DATA
});
//console.log(dbTitleArr); //#3 THIS WORKS AND RETURNS THE EXPECTED DATA
//console.log(wikiData); //#4 THIS DOES NOT WORK
res.render('page.ejs', {dbTitle: dbTitleArr});
//console.log(dbTitleArr); //#5 THIS WORKS AND RETURNS THE EXPECTED DATA
} catch(e) {
console.log("Something went wrong", e) }
});
这就是我需要帮助的地方,console.log #3是成功的,但console.log #4不是。console.log #4给出了Something went wrong ReferenceError: wikiData is not defined
的错误。但它的定义方式似乎与dbTitleArr的定义方式相同?我如何使#4成为console.log可记录的?或者为什么它不是像#3那样的console.log可记录的?
为了实际使用返回的数据,我可以res.render dbTitleArr数据(我可以在page.ejs上查看它),我不能res.render wikiData数据。我需要做什么来查看#4 console.log wikiData并最终res.render它?
1条答案
按热度按时间yr9zkbsy1#
我能够最终res.render两组数据,但#4 console.log仍然不工作。我意识到这是最初的问题,为什么它不工作,所以我会提供其他人的答案点,如果他们可以解释为什么#3工作,但#4不...
我需要做的是将我的res.render移到请求代码中(并且我还删除了请求前面的const wikiPage)。