Estoy usando nodejs y express para puntos finales de api, estoy usando app.use para manejar una ruta, pero no responde sin importar lo que haga.
var express = require("express"); var mongoose = require('mongoose'); var path = require("path"); var favicon = require("serve-favicon"); var http = require('http'); var app = express(); var config = require('./conf/config'); var PORT = config.PORT; mongoose.connect(config.MONGODB); //route handlers app.use('/', function(req, res) { console.log("Hello"); }); var server = http.createServer(function(req, res) { console.log("Request received", req.url); }); server.listen(PORT); console.log("Server running on port", PORT); Debería imprimir hola en la consola cada vez que solicito en la ruta raíz, es decir / pero no está haciendo nada.
Su código Express no es correcto. Está creando un servidor web simple, pero ese servidor web no está conectado a Express de ninguna manera. Si no está tratando de crear ningún tipo especial de servidor (como un servidor https), entonces puede dejar que Express cree el servidor por usted con app.listen(PORT) y luego creará un servidor y se conectará a ese servidor
Yo sugeriría esto:
var express = require("express"); var mongoose = require('mongoose'); var path = require("path"); var favicon = require("serve-favicon"); var app = express(); var config = require('./conf/config'); var PORT = config.PORT; mongoose.connect(config.MONGODB); //route handlers app.get('/', function(req, res) { console.log("Hello"); res.send("Hello"); }); app.listen(PORT); console.log("Server running on port", PORT); Nota: también cambié un par de cosas más. Cambié a app.get() e inserté un res.send() ya que siempre debe enviar algún tipo de respuesta del navegador, solo esperará y esperará a que regrese algo.
Intente usar app.get en lugar de app.use también. Este último se usa para montar subrutas, usar middleware, etc., pero no para configurar controladores de solicitudes.