Ich habe einen node.js Server bekam Daten aus einer Datei user.jsonnode.js - get-Methode mit ID
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var router = express.Router();
var cors = require('cors')
var fs = require("fs");
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false}));
app.get('/listUsers', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
//console.log(data);
res.end(data);
});
})
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
user.json Empfang:
{ "data": [
{
"name" : "mahesh",
"password" : "password1",
"profession" : "teacher",
"id": 1
},
{
"name" : "suresh",
"password" : "password2",
"profession" : "librarian",
"id": 2
},
{
"name" : "ramesh",
"password" : "password3",
"profession" : "clerk",
"id": 3
}
]
}
Wie Sie sehen, Die get-Anforderung zeigt alle Benutzer in den route/listUsers an. Jetzt möchte ich sie nach ID löschen einen bestimmten Benutzer löschen.
URL sollte wie folgt aussehen:/Listusers/id
Aber wie ich zu dieser sehr neu bin, ich weiß acutally nicht, wie es zu tun.
Meine Gedanken sind, dass ich zuerst die ganze Datei lesen und dann irgendwie die ID in die URL setzen muss. Aber wie kann ich das tun? Wird die Anfrage nicht VOR der Ausführung der Funktion gesendet? So wenn ich etw wie folgt aus:
app.get('/listUsers/{this.id}'. function(req,res){
fs.readFile(_dirname + "/" + "users.json", "utf8", function(err, data) {
res.end(data)
id = this.data.id
}}
Es wird nicht funktionieren. Ich möchte eigentlich keine mongoDB oder so etwas verwenden, ich möchte, dass dies nur mit dem nodejs-Server zu Testzwecken funktioniert, wenn möglich. Irgendwelche Gedanken/Vorschläge?
Ich habe versucht Ihren Code und ich verstehe, was es tut, aber alles, was ich sehen kann, ist eine leere Seite. – Faigjaz
Kann das JSON-Format ein Problem sein? Lodash ist für Arrays, oder? Also, muss ich JSON.parse() für Daten verwenden, um die Suchmethode tatsächlich ausführen zu können? – Faigjaz
Meine schlechte ... In der Tat ruft die ReadFile Sie mit einer Zeichenfolge, so dass Sie es als JSON zuerst analysieren müssen. Bearbeitete die Antwort. – wigy