Ich frage mich, was ist die beste Vorgehensweise, um den Code DRY bei der Entwicklung von node.js API mit Datenbankaufrufen zu halten.node.js API Code beibehalten
Ich scheint wie ich viel Code wiederholt habe.
Zum Beispiel, schauen Sie sich dieses:
app.get('/api/users_count', function (req,res) {
pool.connect(function(err, client, done) {
if(err) {
return console.error('error fetching client from pool', err);
}
client.query('SELECT count(*) FROM users;', function(err, result) {
done();
if(err) {
return console.error('error running query', err);
}
res.json({"users count": result.rows[0].count});
});
});
});
und diese:
app.get('/api/users/:id', function (req,res) {
pool.connect(function(err, client, done) {
if(err) {
return console.error('error fetching client from pool', err);
}
client.query('SELECT name FROM users WHERE id=$1;',req.param.id, function(err, result) {
done();
if(err) {
return console.error('error running query', err);
}
res.json({"user name": result.rows[0].name});
});
});
});
Wie kann ich die Wiederholung der Fehler Gabe, verbinden Anruf vermeiden, und konzentrieren sich nur auf der Route und Abfrage.
Danke!
Zum einen können Sie ['pool.query()'] (https://github.com/brianc/node-pg-pool#your-new-favorite-helper-method) anstelle von 'connect ()/query()/done() '. – robertklep
danke! using api Anruf und pool.query macht den Job! Ich denke, ich kann pool.on für die gemeinsame Fehlerbehandlung verwenden, oder? –
Das Problem bei der Verwendung von 'pool.on()' für die globale Fehlerbehandlung besteht darin, dass Sie wahrscheinlich keine HTTP-Antwort (z. B. 500) senden können, um anzuzeigen, dass ein Fehler aufgetreten ist (seit der 'on'-Handler gewonnen hat). t Zugang zu 'res' haben. – robertklep