Zastosowanie Fetch POST, aby zapisać (utrzymują) danych do pliku JSON na serwerze

głosy
0

Chcę zapisać dane do statycznego pliku JSON siedzi na moim serwerze za pomocą Fetch żądania POST.

Czy to się da zrobić? Jeśli więc wszelkie wskazówki lub porady będą mile widziane

Mój kod JavaScript, aby spróbować zapisać dane do mojego pliku JSON.

fetch('link-data.json', {    
method:'POST',
        headers: {
            'Accept': 'application/json, text/plain, */*',
            'Content-type':'application/json'
        },
        body:JSON.stringify({
            id:3,
            title:website_title,
            url:www.example.com,
            description:Hi_there_im_a_description
             })
        })
        .then((res) => res.json())
        .then((data) => console.log(data))

Mój plik JSON Chcę zapisać dane.

[
{
  id: 0,
  title: Twitter. It's what's happening.,
  url: https://twitter.com/?lang=en,
  description: From breaking news and entertainment to sports and politics, get the full story with all the live commentary.
},
{
  id: 1,
  title: Netflix - Watch TV Shows Online, Watch Movies Online,
  url: https://www.netflix.com/,
    description: Watch Netflix movies & TV shows online or stream right to your smart TV, game console, PC, Mac, mobile, tablet and more.
    },
    {
      id: 2,
      title: Facebook - Log In or Sign Up,
      url: https://www.facebook.com/,
      description: Create an account or log into Facebook. Connect with friends, family and other people you know. Share photos and videos, send messages and get updates.
    }
]
Utwórz 13/02/2020 o 21:55
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Tak, możesz. Jeśli używasz node.js, jest prosty sposób, aby to osiągnąć. Powiedzmy, że robisz żądania POST do website.com/saveFile. Następnie kod będzie wyglądać następująco:

const url = require('url')
const http = require('http')
const fs = require('fs')

const server = http.createServer((req, res)=>{
    switch(url.parse(req.url).pathname){
        case '/saveFile':
            let body = ''

            //saving post data into variable body
            req.on('data', chunk=>{
                 body+= chunk.toString()
            })
            req.on('end', ()=>{
                //reading json file
                fs.readFile(__dirname+'/link-data.json', (err, data)=>{
                    if (err) throw err
                    dataJson = JSON.parse(data) //object with your link-data.json file
                    postData = JSON.parse(body) //postData is the variable containing your data coming from the client.
                    dataJson.push(postData)//adds the data into the json file.

                    //Update file
                    fs.writeFile(__dirname+'/link-data.json', JSON.stringify(dataJson), (err)=>{
                      if(err) console.log(err)
                      res.end()
                    })
                })
            })
    }
})

server.listen(5000, ()=>{
    console.log('Server listening at port 5000!')
})

Co to jest, aby otworzyć plik JSON przy użyciu systemu plików (FS) node.js moduł wewnętrzny, analizowania go do obiektu JavaScript i dodawanie danych do tablicy. Następnie plik jest uaktualniany (używając fs.writeFile function ()).

Można również wysłać odpowiedź JSON sygnalizować wszystko poszło zgodnie z planem:

res.end(JSON.stringify({"status": "success"}))

Odpowiedział 13/02/2020 o 22:18
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more