Estoy tratando de requerir un archivo js en mi api express, pero recibo un error 502 cada vez que lo hago. El archivo getJSON.js está en el mismo directorio que mi archivo express js, pero por algún motivo tengo problemas para acceder a él:
docapi.js: const http = require('http'); const getJSON = require('getJSON.js'): const hostname = 'localhost'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });Aquí está el archivo que estoy tratando de requerir:
getJSON.js: test() { console.log("Hello again.") }Perdón por una pregunta tan fácil, pero no he encontrado una explicación en ningún otro lado. ¿Alguien puede decirme qué estoy haciendo mal, por favor?
502 es un error de puerta de enlace incorrecta.
Su servidor proxy inverso no puede conectarse al servidor Node.js porque el servidor Node.js no se inicia debido a errores de sintaxis en sus archivos.
Primero: getJSON.js .
Una declaración de función comienza con la palabra clave de function , pero la omitió.
La sintaxis que está utilizando es para declarar un método , que solo está permitido dentro de una clase u objeto.
En segundo lugar, siguió su llamado a require con dos puntos en lugar de un punto y coma.
Debería tener un informe de error cuando intentó iniciar el servidor (ya sea localmente o en cualquier servicio en el que esté implementando el código). Realmente deberías examinar eso antes de recurrir a SO.
También debe utilizar herramientas como ESLint, que detectará este tipo de error y se integrará con los IDE comunes (como el popular y gratuito Visual Studio Code).
Una vez que corrija sus errores de sintaxis, necesita una ruta relativa (por ejemplo, que comience con ./ ) para require un archivo en el mismo directorio.
También necesita exportar la función para la asignación desde require para hacer algo útil.
¿Ha mirado la consola para su proceso de servidor? Probablemente esté arrojando errores.
; ), no dos puntos ( : después de require()getJSON.js " ya que el uso de una ruta absoluta en require se referiría a un módulo en node_modules . En cambio, si docapi.js y getJSON.js están en el mismo directorio, querrá const getJSON = require('./getJSON.js');getJSON.js no es válida: querrá, por ejemplo function test() { console.log("Hello again.") } module.exports = function test() { console.log("Hello again.") } const getJSON = require('./getJSON.js'); getJSON(); en el otro archivo.