Soy principiante de nodeJs. Solo quiero recibir datos GET y POST en nodeJs.
Intenté obtener datos GET con éxito, pero en los datos POST recibo el error ReferenceError: setImmediate no está definido . Cuando ejecuto server.js usándolo $ node server.js
, escuchará en el 3000
puerto y lo redireccionará a la index.html
página y a través de un error.
Hice Google, pero no se encontró ninguna solución para mi error.
Adjunto código.
server.js
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get('/',function(req,res){
res.sendFile(__dirname+"/index.html");
});
app.post('/login',function(req,res){
var user_name=req.body.user;
var password=req.body.password;
console.log("User name = "+user_name+", password is "+password);
res.end("yes");
});
app.listen(3000,function(){
console.log("Started on PORT 3000");
})
package.json
{
"dependencies":
{
"express":"*",
"body-parser":"*"
}
}
index.html
<html>
<head>
<title>Simple login</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script>
<script>
$(document).ready(function(){
var user,pass;
$("#submit").click(function(){
user=$("#user").val();
pass=$("#password").val();
$.post("http://localhost:3000/login",{user: user,password: pass}, function(data){
if(data==='done')
{
alert("login success");
}
});
});
});
</script>
</head>
<body>
<h1>Hello people !</h1>
<input type="TEXT" id="user" size="40"><br>
<input type="password" id="password" size="40"><br>
<input type="button" id="submit" value="Submit">
</body>
</html>
El error que recibo:
Started on PORT 3000
/var/www/html/nodeJs/Example-4/node_modules/express/lib/response.js:1013
setImmediate(function () {
^
ReferenceError: setImmediate is not defined
at Array.onfinish [as 0] (/var/www/html/nodeJs/Example-4/node_modules/express/lib/response.js:1013:5)
at listener (/var/www/html/nodeJs/Example-4/node_modules/express/node_modules/on-finished/index.js:169:15)
at onFinish (/var/www/html/nodeJs/Example-4/node_modules/express/node_modules/on-finished/index.js:100:5)
at callback (/var/www/html/nodeJs/Example-4/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js:55:10)
at ServerResponse.onevent (/var/www/html/nodeJs/Example-4/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js:93:5)
at ServerResponse.EventEmitter.emit (events.js:126:20)
at ServerResponse.OutgoingMessage._finish (http.js:837:8)
at ServerResponse.OutgoingMessage.end (http.js:822:10)
at onend (stream.js:66:10)
at EventEmitter.emit (events.js:126:20)
Las versiones antiguas de node (anteriores a la v0.10) no eran compatibles setImmediate()
, por lo que deberá actualizar su copia de node para que el código funcione.
Para actualizar el nodo, consulte esta página sobre cómo agregar un repositorio (o usar un instalador para OS X o Windows) para mantener su copia del nodo actualizada automáticamente. Alternativamente, puede extraer un tarball binario precompilado en un lugar de su elección (ajustando su $PATH
según sea necesario) o compilar e instalar desde la fuente. Para conocer estas opciones, consulte esta página .
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras