Ich arbeite mit einer einfachen CRUD-App mit jquery ajax und node.js, nur um meine Fähigkeiten mit Knoten und Ajax zu verbessern. Die Sache ist, dass ich eine Post-Anfrage mache, die mit meinem Post-Router auf dem Node-Server gehandhabt wird, und alles funktioniert gut. Es fügt ein weiteres Produkt zu meiner products.json Datei hinzu, aber am Ende wird die Antwort nicht an den Client zurückgeschickt, der letzte res.send ("done") funktioniert nicht und ich weiß nicht warum. .res.send funktioniert nicht richtig
hier ist der Code:
ajax
$("#create-form").on('submit',function(){
event.preventDefault();
var createIn = $("#create-input").val();
$.ajax({
url: '/products',
method:'POST',
data:JSON.stringify({name:createIn}),
contentType: "application/json",
dataType: "json",
success: function(data){
console.log(data);
$("create-input").val("");
$("get-button").click();
}
});
})
Knoten
app.post('/products',function(req,res){
fs.readFile('products.json','utf8',function(err,data){
var result = JSON.parse(data);
var productName = req.body.name;
console.log(req.body.name);
currentId++;
var productId = currentId;
var product = {
name: productName,
id: productId
}
result.products.push(product);
fs.writeFile(__dirname + "/products.json",JSON.stringify(result),'utf8');
});
res.send("post done");
});
Dies ist nur der wichtige Teil des Codes, es funktioniert und scheitert nur am Ende in der res.send.
Welche Knoten-Bibliothek verwenden Sie für das Routing? – Wex
Ich mache es direkt, keine Routen, weil ich es nicht für diese kleine Anwendung brauche –
Was ist Ihre Variable 'app' eine Instanz von? – Wex