Verwenden Fetch POST (persistieren) zu speichern Daten in eine JSON-Datei auf dem Server

stimmen
0

Ich möchte Daten auf eine statische JSON-Datei auf meinem Server Sitzung speichern eine POST-Anfrage Fetch verwenden.

Ist das möglich zu tun? Wenn dies der Fall wäre irgendwelche Tipps oder Ratschläge geschätzt werden

Mein Javascript-Code speichert Daten auf meine JSON-Datei, um zu versuchen.

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))

Meine JSON-Datei Ich möchte die Daten speichern.

[
{
  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.
    }
]
Veröffentlicht am 13/02/2020 um 21:55
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Ja, du kannst. Wenn Sie node.js verwenden, gibt es eine einfache Art und Weise zu erreichen, dass. Angenommen, Sie haben die POST-Anforderung an website.com/saveFile machen. Dann würde der Code wie folgt aussehen:

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!')
})

Was dies tut, ist die JSON-Datei mit dem Dateisystem (FS) node.js interne Modul zu öffnen, um es zu einem Javascript-Objekt-Parsing und die Daten an das Array hinzufügen. Dann wird die Datei aktualisiert (die Funktion fs.writeFile mit ()).

Sie könnten auch eine JSON Antwort auf Signal alles senden, wie geplant ging:

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

Beantwortet am 13/02/2020 um 22:18
quelle vom benutzer

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