Javascript 我能';无法将我的数据从firebase显示到我的节点js客户端

Javascript 我能';无法将我的数据从firebase显示到我的节点js客户端,javascript,node.js,firebase,firebase-realtime-database,Javascript,Node.js,Firebase,Firebase Realtime Database,我试图在客户端显示数据库中存储的数据,但我很难弄明白这一点 我能够以JSON格式在终端中显示控制台中的数据 e、 g 但当我试图在我的jade模板中使用for循环来显示它时,似乎什么都没有显示。我希望有人能指出我做错了什么。任何帮助都将不胜感激。谢谢,如果有人需要更多信息来回答这个问题,请告诉我 以下是我尝试检索和显示数据的部分(所有路由都正常工作): 这是jade模板文件。只有最后3行代码与此问题相关: extends layout block content .row h1

我试图在客户端显示数据库中存储的数据,但我很难弄明白这一点

我能够以JSON格式在终端中显示控制台中的数据

e、 g

但当我试图在我的jade模板中使用for循环来显示它时,似乎什么都没有显示。我希望有人能指出我做错了什么。任何帮助都将不胜感激。谢谢,如果有人需要更多信息来回答这个问题,请告诉我

以下是我尝试检索和显示数据的部分(所有路由都正常工作):

这是jade模板文件。只有最后3行代码与此问题相关:

extends layout

block content
    .row
    h1 #{title}
    hr
    form(method='POST', action='/articles')
        #form-group
            label Title
            input.form-control(name='title', type='text')
        br
        #form-group
            label Body
            textarea.form-control(name='body')
            br
            input.btn.btn-primary(type='submit', value='Submit')
    br
    br
    ul
        each article in articles
            li= article
试试这个:

// Add Articles Route
router.get('/', (req, res, next) => {
  let ref = firebase.database().ref('articles')
  let articlesRef = ref.child('article')
  let articleRef = articlesRef.key
  articlesRef = ref.once('value')
    .then((snap) => {
      console.log(snap.val());
      res.render('articles', {
        title: 'Add Article',
        articles: snap.val()
      })
    })
})
您需要等待获取实际值,然后才能渲染它,从而将其移动到
中,然后
并使用
snap.val()

尝试以下操作:

// Add Articles Route
router.get('/', (req, res, next) => {
  let ref = firebase.database().ref('articles')
  let articlesRef = ref.child('article')
  let articleRef = articlesRef.key
  articlesRef = ref.once('value')
    .then((snap) => {
      console.log(snap.val());
      res.render('articles', {
        title: 'Add Article',
        articles: snap.val()
      })
    })
})

您需要等待获取实际值,然后才能进行渲染,从而将其移动到
中,然后使用
snap.val()

嘿,非常感谢@Michael Bleigh。我让它工作了,但现在它为每个
  • 返回[object]。我尝试使用“articles:JSON.parse(snap.val()”,但它仍然显示为[object]。你能告诉我如何正确地显示它吗?抱歉,我能猜出来。我必须在jade模板中使用JSON.stringify()。再次感谢你的帮助。你是救命恩人。嘿,非常感谢你@Michael Bleigh。我让它工作了,但现在它为每个
  • 返回[object]。我尝试使用“articles:JSON.parse(snap.val()”,但它仍然显示为[object]。你能告诉我如何正确地显示它吗?抱歉,我能猜出来。我必须在jade模板中使用JSON.stringify()。再次感谢你的帮助。你是救命恩人。
    // Add Articles Route
    router.get('/', (req, res, next) => {
      let ref = firebase.database().ref('articles')
      let articlesRef = ref.child('article')
      let articleRef = articlesRef.key
      articlesRef = ref.once('value')
        .then((snap) => {
          console.log(snap.val());
          res.render('articles', {
            title: 'Add Article',
            articles: snap.val()
          })
        })
    })