开发者

Get elements from JSON array to display as a text

So i am trying to get a first_name from JSON object which has array of elements by iterating through it, for example if i type 'Ron' it will display as a text but for some reason I can't get display it as a text unless i send in a respond this `

playerName: nbaPlayer[0]

But it only displays one element as a text since others are not in a response

reponse in a server enter image description here

Here is a code for fetch where i use search bar from handlebars to search for a first_name


const nbaForm = document.querySelector('form')
const search = document.querySelector('input')

const messageOne = document.querySelector('#player-1')

nbaForm.addEventListener('submit', (event) => {
    event.preventDefault()
    const playerSearch = search.value

    messageOne.textContent = 'Loading...'

    fetch('ht开发者_高级运维tp://localhost:4000/nba').then((response) => {
        response.json().then(nbaData => {
       
            if (nbaData.playerName === playerSearch) {
                messageOne.textContent = nbaData.playerName
            } else {
                messageOne.textContent = 'not found'
            } 
        })
    })
})

request method

app.get('/nba', (req,res) => {
    networkManager.nbaPlayerData((data)=>{
        /
        var nbaPlayer = []
     
        for(var i=0; i<data.data.length; i++){
            nbaPlayer.push(data.data[i].first_name)
        }
        console.log(nbaPlayer)
        res.send({ 
            playerName: nbaPlayer
})
    })
})

handlebars file

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,  initial-scale=1.0">
    <title>NBA</title>
    <link rel = "stylesheet" href="/css/style.css"> 
    
</head>
<body>
     <div class="main-content">
        <h1>NBA SERVER</h1>
        <p>Use this site to get NBA player</p>


        <form action="">
            <input placeholder="Type a players name">
            <button>Search</button>
        </form>
        
        <p id="player-1"></p>
      
      <h1>{{playerName}}</h1>
    </div>

    
  
   <script src ="/js/fetch-app.js"></script>
</body>
</html> 


try this.

fetch('http://localhost:4000/nba').then((response) => {
        response.json().then(nbaData => {
       var index = nbaData.playerName.indexOf(playerSearch)
            if (index !== -1) {
                messageOne.textContent = nbaData.playerName[index]
            } else {
                messageOne.textContent = 'not found'
            } 
        })
    })


You are getting an array from

res.send({ 
            playerName: nbaPlayer // nbaPlayer is array
})

but in your fetch, you want to get data as from simple object

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜