gpt4 book ai didi

node.js - 使用 NODEJS 将 POST 请求正文发送到网页

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

我有以下设置:1)NodeJs服务器2)外部应用

我希望接收来自外部应用程序的 POST 请求,并将 POST 请求的正文发送到网页以进行可视化。

到目前为止我可以成功接收POST请求并在服务器控制台中打印它。我使用express和body-parser来处理服务器和消息正文。

这是代码:

var express = require("express");
var myParser = require("body-parser");
var app = express();

app.use(myParser.json({extended : true}));
app.post("/", function(request, response) {
console.log(request.body);
});

app.listen(3000);

在 POST 事件中,我只打印正文消息。我什至没有发回响应,因为我知道它对外部应用程序没有用处。现在,对于第二部分,即网页上的可视化,我需要在我的应用程序中提供一个“get”事件,由连接到服务器的浏览器提供。

所以我修改了服务器代码如下:

var express = require("express");
var myParser = require("body-parser");
var app = express();

app.use(myParser.json({extended : true}));
app.post("/", function(request, response) {
console.log(request.body);
app.get("/index.html",function(req,res){
res.end(request.body);});
});

app.listen(3000);

在服务器启动时,我没有收到任何错误,但如果我在 index.html 资源上打开浏览器,则会收到此错误:

类型错误:第一个参数必须是字符串或缓冲区在 ServerResponse.end (_http_outgoing.js:742:13)

位于/usr/share/myapp.js:10:5

在 Layer.handle [作为 handle_request] (/usr/share/myapp/node_modules/express/lib/router/layer.js:95:5)

接下来(/usr/share/myapp/node_modules/express/lib/router/route.js:137:13)

在 Route.dispatch (/usr/share/myapp/node_modules/express/lib/router/route.js:112:3)

在 Layer.handle [作为 handle_request] (/usr/share/myapp/node_modules/express/lib/router/layer.js:95:5)

位于/usr/share/myapp/node_modules/express/lib/router/index.js:281:22

位于 Function.process_params (/usr/share/myapp/node_modules/express/lib/router/index.js:335:12)

接下来(/usr/share/myapp/node_modules/express/lib/router/index.js:275:10)

位于 jsonParser (/usr/share/myapp/node_modules/body-parser/lib/types/json.js:109:7)

你能帮我找出问题所在吗?

最佳答案

这里发生了一些事情。首先,您已经在 app.use 方法中声明了 app.get 和 app.post 方法,您需要将它们分开,如下所示:

app.use(myParser.json({extended : true}));

app.post("/", function(request, response) {
console.log(request.body);
});

app.get("/index.html",function(req,res) {
res.end(request.body);
});

您还需要确保在 get 方法中使用 res.end 时声明您的内容类型。

查看 bodyparser 的文档,了解一个看起来接近您想要实现的目标的示例,它可能会对您有所帮助:https://github.com/expressjs/body-parser#expressconnect-top-level-generic

关于node.js - 使用 NODEJS 将 POST 请求正文发送到网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598014/

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