• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Http.put Funktion erstellen in AngularJS mit PG

kiwi2016

Neues Mitglied
Hallo,
ich fuchse mich gerade ein bisschen mit AngularJS ein und versuche jetzt bereits vorhandene Daten in eine PostgreSQL Datenbank upzudaten. Sie sieht so aus:

Column | Type | Modifiers
----------+-----------------------+----------------------------------------------------
id | integer | not null default nextval('items_id_seq'::regclass)
text | character varying(40) | not null
complete | boolean |

Jetzt möchte ich eine Zeile mit vorgegebener ID ändern. Das ist meine PUT-Funktion.

router.put('/api/v1/todos/:todo_id', (req, res, next) => {
const results = [];
// Grab data from the URL parameters
const id = req.params.todo_id;
// Grab data from http request
const data = {text: req.body.text, complete: req.body.complete};
// Get a Postgres client from the connection pool
pg.connect(connectionString, (err, client, done) => {
// Handle connection errors
if(err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
// SQL Query > Update Data
client.query('UPDATE items SET text=($1), complete=($2) WHERE id=($3)',
[data.text, data.complete, id]);
// SQL Query > Select Data
const query = client.query("SELECT * FROM items ORDER BY id ASC");
// Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', function() {
done();
return res.json(results);
});
});
});

Das habe ich im Controller:

$scope.UpdateData = function () {
var data = $.param({
Complete: $scope.id,
Text: $scope.text,


})

$http.put('/api/v1/todos/' + todoID)
.success((data) => {
$scope.todoData = data;
console.log(data);
})

};

und auf der HTML-Seite:

<div >
<h2>Put/Update</h2>
<form ng-submit="UpdateData()">
<p>Text: <input type="text" name="text" ng-model="firstName" required /></p>

<p>ID : <input type="number" name="id" ng-model="age" required /></p>
<input type="submit" value="Submit" />
<hr />
{{ todo }}
</form>
</div>

Hat da jemand eine Idee wie ich es anders machen kann? Hab mich ein bisschen festgefahren!

Danke für eure Hilfe!
 
Hat da jemand eine Idee wie ich es anders machen kann? Hab mich ein bisschen festgefahren!

Wohl eher in einer Sackgasse gelandet. Wenn du dich für Angular interessierst, verwende nicht das alte AngularJS, sondern das neue 2/4. Das ist deutlich einfacher zu erlernen. Willst du zusätzlich noch ein Backend auf Basis von NodeJS erstellen, dann sind Express und MEAN die Stichwörter, nach denen du suchen solltest. Und nimm keine Tutorials, die vor Oktober 2016 veröffentlicht wurden. Zu dem Zeitpunkt wurde Angular 2 released. Alles davor ist noch Beta-Status.

Anbei eine App, die ich im Sommer vergangenen Jahres auf Basis des Express-Frameworks geschrieben habe. Auch noch Beta und hinsichtlich des Angular-Parts veraltet. Aber es zeigt die Struktur der serverseitigen Routen und CRUD-Operations (get, post, patch, delete) mit NodeJS.
 
Anbei eine App, die ich im Sommer vergangenen Jahres auf Basis des Express-Frameworks geschrieben habe. Auch noch Beta und hinsichtlich des Angular-Parts veraltet. Aber es zeigt die Struktur der serverseitigen Routen und CRUD-Operations (get, post, patch, delete) mit NodeJS.

Wo finde ich denn dein Anbei??? :)
 
Zurück
Oben