usar - Ejemplos básicos de Node.js que no funcionan en Windows 7
node path visual studio code (6)
Lo intenté y me funciona. Asegúrate de no estar bloqueando el nodo con tu firewall.
Instalé node.js desde http://nodejs.org/#download , v0.6.6. Estoy usando Windows 7 de 32 bits.
He estado revisando varios tuts en línea y quiero experimentar mientras lo hago, pero parece que no puedo hacer que node.js funcione. Nodo ejecutará mi archivo .js, pero cualquier solicitud del navegador expirará.
Aquí hay un ejemplo típico de Hello World que no funciona:
var http = require(''http'');
http.createServer(function (req, res) {
res.writeHead(200, {''Content-Type'': ''text/plain''});
res.end(''Hello World/n'');
}).listen(1337);
Apuntando a mi navegador en 127.0.0.1:1337 o localhost: 1337 no funciona. La solicitud del navegador se agota. También intenté escuchar (1337, ''0.0.0.0'') y escuchar (1337, ''127.0.0.1'').
Sé que el servidor se está ejecutando; si presiono CTRL + C y paro el nodo, el navegador vuelve inmediatamente con ERR_CONNECTION_RESET.
También intenté ejecutar el código en este sentido, que no funcionará: https://gist.github.com/1339846 . Termino con la salida de la consola "¡Escuchando!" y luego nada más.
Además, he probado diferentes puertos, y mi firewall está apagado a través de
netsh firewall set opmode mode=disable
Intenté con el firewall totalmente desactivado, y el servicio se detuvo. Si reviso las conexiones usando netstat -noa, puedo ver que el nodo tiene un grupo de conexiones abiertas para los navegadores, todas en estado CLOSE_WAIT. Entonces parece que las conexiones están sucediendo, pero node.js simplemente no está funcionando.
La función de devolución de llamada que se supone debe ser iniciada por una solicitud nunca se ejecuta: rocié algunas instrucciones de console.log en varias áreas, y todas se ejecutan excepto cualquiera en la devolución de llamada.
Desinstalé, volví a instalar, probé un par de compilaciones previas, reinicié mi máquina ... nada.
¡Cualquier ayuda es apreciada!
ACTUALIZACIÓN: casi me he dado por vencido. He intentado todo lo que se me ocurre, y resultó ser más fácil ejecutar node.js en una instancia de Ubuntu en VirtualBox que captar pajas.
Estoy usando Windows 7 de 32 bits.
¿Qué edición de Windows 7 estás usando? P.ej. ¿Home Premium, Professional, Ultimate?
Un hilo en el proyecto npm github menciona síntomas similares al instalar módulos nodejs usando npm, y los comentarios parecen limitarse a ser causados por Windows 7 Professional. Ser de 32/64 bits no parece importar.
Estoy teniendo tanto el problema que describes, como el problema de instalación de npm, y estoy corriendo en Windows 7 Professional de 64 bits.
El uso de XPMode (una solución alternativa mencionada en el hilo npm) me ha permitido resolver ambos problemas. Aunque, supongo que esto es solo una versión más de Windows de su uso de Ubuntu en VirtualBox.
Otras soluciones intentaron sin éxito:
- Hacer / ejecutar una compilación de depuración de v0.6.6
- Hacer / ejecutar una compilación de depuración de v0.6.5 (realmente se colgó en el inicio)
- Establecer varios modos de compatibilidad en el node.exe instalado
- Instalador de Windows empaquetado de v0.6.5
Estaba teniendo el mismo problema con este código (ejemplo del servidor Http desde este enlace: http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/ )
var http = require("http");
http.createServer(function (request, response) {
request.on("end", function () {
response.writeHead(200, {
''Content-Type'': ''text/plain''
});
response.end(''Hello HTTP!'');
});
}).listen(8080);
Intenté la versión Windows 7 de 64 bits, la máquina virtual de Windows XP, la máquina virtual ubuntu ... ¡nada! Solo funcionó después de que comencé la línea "request.on". Tu ejemplo (que no tiene esta línea) funcionó bien para mí. Estoy usando la última versión estable de node.js (v0.10.18 para windows o linux). Espero que esto ayude a cualquiera que tenga problemas con esto.
!!!!!! El mismo problema me pasó ...
Aquí hay una solución que aún no he encontrado en ninguna parte:
Busque en Windows Firewall with Advanced Security
y vea si Evented I/O for V8 JavaScript
está bloqueado o aparece dos veces.
Si es así, desbloquéelo y elimine la entrada duplicada. Si instala / desinstala / instala nodeJs, habrá 2 entradas.
Además, cuando el nodo se ejecuta por primera vez, se abre el cuadro de diálogo del cortafuegos de Windows que le pregunta si desea permitir que el nodo tenga acceso al cortafuegos. Si presiona "No" o simplemente cierra la ventana sin preguntar, creará Evented I/O for V8 JavaScript
Y SE BLOQUEARÁ.
Me encontré con el mismo problema y después de leer la documentación, inesperadamente me encontré con lo que creo que es la solución. En mi caso, me daba cuenta de que las solicitudes entrantes SE ENTREGABAN en el nodo, pero la respuesta nunca tuvo su evento ''final'' activado. Por lo tanto, alterar las reglas de firewall entrantes en Windows no parecía estar relacionado con el problema.
Por lo tanto, http.createServer toma un único argumento, una función que debe incluir un parámetro de solicitud y respuesta. El parámetro de solicitud parecía ser donde estaba el problema. El parámetro de solicitud es una instancia de http.incomingMessage. Esta clase solo tenía como un tipo de evento, pero también era una implementación de Stream.Readable, que es donde encontré el evento ''end'' que no se activó. Realmente, por ninguna otra razón que solo para probar cuál fue el primer evento que no se desencadenó, acabo de agregar un oyente para otro tipo de evento (''legible''), y solo agregué una línea console.log que hizo que todo funcionara.
Entonces, el código se ve simplemente así:
var http = require("http");
http.createServer(function (request, response) {
console.log(''request'');
request.on(''readable'', function(){
console.log(''request readable'');
});
request.on("end", function () {
console.log(''request end'');
response.writeHead(200, {
''Content-Type'': ''text/plain''
});
response.end(''Hello HTTP!'');
});
}).listen(8080);
El código anterior funciona, mientras que la versión anterior a continuación sin un detector de eventos "legible" nunca responde:
var http = require("http");
http.createServer(function (request, response) {
console.log(''request'');
request.on("end", function () {
console.log(''request end'');
response.writeHead(200, {
''Content-Type'': ''text/plain''
});
response.end(''Hello HTTP!'');
});
}).listen(8080);
No estoy seguro de por qué funciona esto, excepto por una pequeña pista en la documentación que dice:
En algunos casos, al escuchar un evento "legible", algunos datos se leerán en el búfer interno desde el sistema subyacente, si es que aún no lo había hecho.
- Vaya a "Panel de control / Todos los elementos del panel de control / Firewall de Windows / Programas permitidos"
- Haz clic en Permitir programas
- seleccione nodejs de la lista.
Esto solucionó todos los problemas para mí