gpt4 book ai didi

node.js - NodeJs中无法接收POST数据

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:29 25 4
gpt4 key购买 nike

我是nodeJs的初学者。我只想在nodeJs中接收GET和POST数据。

我尝试成功获取 GET 数据,但在 POST 数据中我收到错误ReferenceError:setImmediate 未定义。当我使用 $ node server.js 运行 server.js 时,它将监听 3000 端口并重定向到 index.html 页面并通过错误.

我用 Google 搜索了它,但没有找到我的错误的解决方案。

我正在附加代码。

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>

我遇到的错误:

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)

最佳答案

旧版本的 Node (v0.10 之前)不支持 setImmediate(),因此您需要升级 Node 副本才能使代码正常工作。

要升级 Node ,请参阅this page关于添加存储库(或使用 OS X 或 Windows 的安装程序)以自动保持 Node 副本最新。或者,您可以将预编译的二进制 tarball 提取到您选择的位置(根据需要调整 $PATH)或从源代码编译并安装。对于这些选项,请参阅 this page .

关于node.js - NodeJs中无法接收POST数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37936781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com