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