compiti fatto:URL nel Node.js
How do I get started with Node.js [closed]
Backstory: Ho voluto provare a scrivere il mio quadro, ma sono in esecuzione in alcuni problemi , molto probabilmente a causa di non comprenderlo completamente.
Quello che voglio raggiungere è una sintassi che assomiglia a questo:
var app = require('./app'); //this part is understood and it works in my current code.
app.get('/someUrl', function(){ //do stuff here });
app.post('/someOtherUrl', function(){ //do stuff here });
So del Express-quadro che ha questa stessa sintassi ma leggendo il loro codice sorgente ancora mi sfugge.
Questo potrebbe essere un compito banale da raggiungere, ma semplicemente non posso ancora produrlo.
Provare a require('./app');
in un file più profondo nell'applicazione produce un oggetto non definito, quindi suppongo che un server sia un oggetto singleton.
Quindi cosa ho provato?
Il mio codice attuale sembra così, e in qualche modo mi sembra che questa sia la strada da percorrere, ma a quanto pare non posso farlo in questo modo.
Sto omettendo tutte le istruzioni require();
per renderlo più leggibile.
server.js:
var app = module.exports = {
preProcess: function onRequest(request, response){
processor.preRequest(request); //this object adds methods on the request object
var path = urllib.parse(request.url).pathname;
router.route(urls, path, request, response);
},
createServer: function() {
console.log("Server start up done.");
return this.server = http.createServer(this.preProcess);
}
};
exports.app = app;
Al momento della scrittura sto sperimentando estendere questo oggetto con un metodo get()
.
index.js:
var app = require('./server');
app.createServer().listen('1337');
il bit router.route()
e che sono inviati in pratica la richiesta avanti nell'applicazione e all'interno del router.js-file fare un po 'di magia e indirizzare la richiesta in poi a una funzione che mappa (finora) al/urlThatWasRequested
Questo è il comportamento che mi piacerebbe lasciare alle spalle. So che questo potrebbe essere un ordine piuttosto alto ma tutto il mio codice è facilmente scartato e non ho paura di riscrivere l'intero codice base in quanto questo è il mio progetto.
Spero che questo sia sufficiente per spiegare diversamente la mia domanda, per favore dì ciò che dovrei aggiungere per rendere questo un po 'più chiaro.
Grazie in anticipo!
Grazie per la risposta! :) La mia domanda era "Come produrre una sintassi .get(), .post()". Potrei dover modificare la domanda. Il motivo per cui mi piacerebbe astenermi dal controllare l'inserimento/inserimento nella funzione stessa è solo dovuto alla preferenza in questo progetto. Grazie per avermi indicato nella giusta direzione! :) Inoltre ho un file di gestori in cui aggiungo molti gestori che eseguono il mapping di funzioni con lo stesso nome, non sono sicuro che ciò sia stato reso chiaro. –
@limelights vedo. Ho aggiornato la risposta! – freakish
questa potrebbe essere una domanda totalmente idiota ma la proprietà dei gestori non è istallata, è solo indefinita. –