2012-07-23 21 views
18

Estoy intentando crear una aplicación Node.js yNode.js Alerta produce bloqueo

alert('Sample Alert'); 

está causando mi programa se bloquee. Nodo dice

ReferenceError: alert is not defined

y luego se cierra. Puedo usar la función alert cuando ejecuto javascript en una página html normal, por lo que no entiendo por qué esto es ... ¿Es este un módulo separado que tengo que usar con node.js?

Gracias de antemano.

+8

nada fuera de [esta] (http://ecma-international.org/ecma-262/5.1/) no es normal Javascript – Esailija

+1

@Esailija - Técnicamente común de JavaScript * * debe tener 'alerta 'dado que JavaScript es una rama de ECMAScript normalmente implementada en navegadores. Lo que quisiste decir fue probablemente ECMAScript. –

Respuesta

42

La función alert() es una propiedad de los objetos del navegador window. No es realmente parte de JavaScript; es solo una instalación disponible para el código JavaScript en ese entorno.

Trate console.log("Hello World"); función

+6

Lo que estás preguntando no tiene ningún sentido, de verdad.El código del servidor puede enviar un error como parte de una respuesta a una solicitud HTTP, y luego, a su vez, un código ** JavaScript ** separado que se ejecuta en el navegador del cliente puede presentar una alerta. Eso tendrá muy poco que ver directamente con el código JavaScript que comprende su aplicación del lado del servidor. – Pointy

6

alert() sólo está disponible cuando se ejecuta JavaScript en el contexto especial de las ventanas del navegador. Está disponible a través del objeto window.

Node.js no está diseñado para escribir aplicaciones de escritorio (directamente). Está destinado principalmente a escribir aplicaciones de JavaScript en el lado del servidor. Puede usar los siguientes frameworks/paquetes (y muchos más) si desea desarrollar aplicaciones de escritorio verdaderas.

  • Electron
  • NW.js (previamente, nodo-webkit)

    NW.js is an app runtime based on Chromium and node.js . You can write native apps in HTML and JavaScript with NW.js. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies.

  • AppJS

    Available as an standalone distributable and an npm package


Mientras tanto, puede usar console.log() para enviar un mensaje en Node.js.

console.log('hello'); 
0

Si bien estas respuestas son "correctas", ya que no hay función de alerta disponibles fuera del navegador, no hay razón por la que no se puede crear uno y luego usarlo:

node -e "function alert(x){ 
      x === 'undefined' ? console.log('undefined') : console.log(x); return; 
     }; 
     alert('x'); alert();" 

resultados:

x 
undefined 

Entonces es posible que no necesite cambiar su código existente o ejemplo o lo que sea.

0

También necesitará código para esperar una clave. Aquí es un comienzo:

process.stdin.on('char', function() { 
    var chunk = process.stdin.read(); 
    if (chunk !== null) { 
    process.stdout.write('data: ' + chunk + 'got?\n'); 
    } 
});