html5 - 通过post抓取的页面数据 为啥不能展现在页面上
PHPz
PHPz 2017-04-17 15:01:39
0
2
737

这是node.js代码

var http = require("http"),
    fs = require("fs"),
    querystring = require("querystring"),
    url = require("url");

http.createServer(function(req,res){
    var postdata="";
    var query="what";
    var pathname = url.parse(req.url).pathname;

    req.setEncoding("utf8");
    if(pathname=="/"){
        var indexPage = fs.readFileSync("表单.html");
        res.writeHead(200,{"Content-Type":"text/html"});
        res.end(indexPage);
    }
    if(pathname=="/about"){
        req.on("data",function(chunk){
            postdata += chunk;
        });
        req.on("end",function() {
            console.log(postdata);
            query = querystring.parse(postdata);
            console.log(query);
        });
        res.writeHead(200, {"Content-Type":"text/plain"});
        console.log(query.Name);
        console.log(query.number);
        res.write(query.number+ "and "+query.number);
        res.end();
    }
    else{
        res.writeHead(404,{"Content-Type":"text/plain"});
        res.end("Can not find the source");
    }
}).listen(2000,"127.0.0.1");

console.log("The server is running at port 2000");

这是html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单填写</title>
</head>
<body>
<form action="/about" method="post">
  <p> Name: <input type="text" name="Name"></p>
    <p>SchoolNumber:<input type="text" name="number"></p>
    <p><input type="submit" value="提交"></p>
</form>
</body>
</html>

执行结果图:

求大神解决 小弟感激不尽

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
阿神

원인 분석: 콜백 함수 실행 순서에 문제가 있습니다.

보시려면 인쇄 정보를 추가해 주세요.

res.write() 줄은 처음에 정의한 쿼리를 반환하고 req.on()의 작업을 수행하지 않습니다. 이때 쿼리는 여전히 json이 아닌 정의한 문자열 "what"입니다. . 개체이므로 숫자 속성이 없으므로 정의되지 않습니다.
해결책: req.on() 안에 res.write()를 다음과 같이 작성할 수 있습니다.

伊谢尔伦

요청 방식을 판단하는 모습을 보면 어떨까요?
이것은 제가 이전에 작성한 예시입니다. 참고하세요:

으아악

mongodb.js 코드가 필요하시면 제 github에서 확인하실 수 있습니다. 사실은 간단한 댓글 데모입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿