deberes hechos:URL en Node.js
How do I get started with Node.js [closed]
Historia: quería probar y escribir mi propio marco, pero estoy corriendo en dificultades , muy probablemente debido a que no se entiende completamente.
Lo que queremos lograr es una sintaxis que tiene este aspecto:
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 });
que sé del Express-marco que tiene esta misma sintaxis, pero la lectura de su código fuente todavía me elude.
Esto podría ser una tarea trivial pero todavía no puedo producirlo.
Intentando require('./app');
en un archivo más profundo en la aplicación produce un objeto indefinido, así que supongo que un servidor es un objeto singleton.
¿Qué he probado?
Mi código actual se ve así, y de alguna manera siento que este es el camino a seguir, pero aparentemente no puedo hacerlo así.
Estoy omitiendo todas las declaraciones require();
para que sea más legible.
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;
En el momento de la escritura que estoy experiencias de prolongación de este objeto con un método get()
.
index.js:
var app = require('./server');
app.createServer().listen('1337');
el bit router.route()
envía la solicitud básicamente en adelante en la aplicación y en el interior del router.js-archivo que hago un poco de magia y enrutar la solicitud hacia adelante a una función que mapea (hasta ahora) para/urlThatWesRequested
Este es el comportamiento que me gustaría dejar atrás. Sé que esto puede ser un pedido bastante difícil, pero todo mi código es fácilmente descartable y no tengo miedo de volver a escribir todo el código, ya que este es mi propio proyecto.
Espero que esto sea suficiente para explicar mi pregunta, de lo contrario, indique lo que debería agregar para que quede un poco más claro.
¡Gracias de antemano!
¡Gracias por la respuesta! :) Mi pregunta fue "Cómo producir una sintaxis .get(), .post()". Podría tener que alterar la pregunta. La razón por la cual me gustaría abstenerme de verificar para obtener/publicar en la función en sí es solo por preferencia en este proyecto. ¡Gracias por señalarme en la dirección correcta! :) También tengo un archivo de controladores donde agrego muchos manejadores que se asignan a funciones con el mismo nombre. No estoy seguro si eso quedó claro. –
@limelights Veo. ¡He actualizado la respuesta! – freakish
esto podría ser una pregunta totalmente idiota pero la propiedad de controladores no está instalada, no está definida. –