gpt4 book ai didi

javascript - Node.js 在 cmd 中运行,但不在浏览器中运行

转载 作者:行者123 更新时间:2023-12-02 17:55:26 27 4
gpt4 key购买 nike

我运行了这段代码,它位于 jquery pro 2.0 书中:

var http = require("http");
var querystring = require("querystring");

var port = 80;

http.createServer(function (req, res) {
console.log("[200 OK] " + req.method + " to " + req.url);

if (req.method == "POST") {
var dataObj = new Object();
var cType = req.headers["content-type"];
var fullBody = "";

if (cType && cType.indexOf("application/x-www-form-urlencoded") > -1) {
req.on("data", function(chunk) { fullBody += chunk.toString();});
req.on("end", function() {
res.writeHead(200, "OK", {"Content-Type": "text/html"});
res.write("<html><head><title>Post data</title></head><body>");
res.write("<style>th, td {text-align:left; padding:5px; color:black}\n");
res.write("th {background-color:grey; color:white; min-width:10em}\n");
res.write("td {background-color:lightgrey}\n");
res.write("caption {font-weight:bold}</style>");
res.write("<table border='1'><caption>Form Data</caption>");
res.write("<tr><th>Name</th><th>Value</th>");
var dBody = querystring.parse(fullBody);
for (var prop in dBody) {
res.write("<tr><td>" + prop + "</td><td>"
+ dBody[prop] + "</td></tr>");
}
res.write("</table></body></html>");
res.end();
});
}
}

}).listen(port);
console.log("Ready on port " + port);

使用命令行node.exe formserver.js这将返回“端口 90 就绪”。每当我在浏览器上调用 localhost:90 时,它都会在 cmd 中将请求注册为“200 OK GET to/”

在浏览器中,它显示“正在等待本地主机”大约一分钟。然后它会失败并显示“未收到数据消息”。

在书中,作者使用了 www。扩展来服务他的页面,但是,我像大多数普通初学者一样使用“localhost”

我有两个问题,如何加载本地主机以及在哪里保存 html 文件以便本地主机能够看到它们。是否与上述代码保存在同一文件夹中?或者在nodejs安装的html文档中?

最佳答案

以下是一些可以帮助您获得结果的提示:

  1. 不要监听端口 80
  2. 您正在对 POST 使用react - 当您只需输入网址时,浏览器将发出 GET
  3. 也买一本关于 Node.js 的书:-)
  4. 使用这些修改至少可以获得一些结果:

    var http = require("http");
    var querystring = require("querystring");

    var port = 8888;

    http.createServer(function (req, res) {
    console.log("[200 OK] " + req.method + " to " + req.url);

    if (req.method == "GET") {
    var dataObj = new Object();
    var cType = req.headers["content-type"];
    var fullBody = "";


    res.writeHead(200, "OK", {"Content-Type": "text/html"});
    res.write("<html><head><title>Post data</title></head><body>");
    res.write("<style>th, td {text-align:left; padding:5px; color:black}\n");
    res.write("th {background-color:grey; color:white; min-width:10em}\n");
    res.write("td {background-color:lightgrey}\n");
    res.write("caption {font-weight:bold}</style>");
    res.write("<table border='1'><caption>Form Data</caption>");
    res.write("<tr><th>Name</th><th>Value</th>");
    var dBody = querystring.parse(fullBody);
    for (var prop in dBody) {
    res.write("<tr><td>" + prop + "</td><td>"
    + dBody[prop] + "</td></tr>");
    }
    res.write("</table></body></html>");
    res.end();


    }

    }).listen(port);
    console.log("Ready on port " + port);
  5. 在浏览器地址字段中输入 localhost:8888

希望这能让您知道下一步该做什么。

关于javascript - Node.js 在 cmd 中运行,但不在浏览器中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999133/

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