剧场模式
首页后端轻松学 nodejs - 基础篇

轻松学 Node.js - 基础篇 #15 web 服务器 part 7 使用 GET 或 POST 请求发送数据

下载源码hfpp2012发布于Nodejs2504 次点击播放时长:09:38
5

https://nodejs.org/dist/latest-v9.x/docs/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost

https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/

server.js

var http = require('http');
var fs = require('fs');
var url = require('url');
var querystring = require('querystring');

function startServer(route, handle) {
    var onRequest = function(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log('Request received ' + pathname);
        var data = [];
        request.on("error", function(err) {
            console.error(err);
        }).on("data", function(chunk) {
            data.push(chunk);
        }).on('end', function() {
            if (request.method === "POST") {
                if (data.length > 1e6) {
                    request.connection.destroy();
                }
                data = Buffer.concat(data).toString();
                route(handle, pathname, response, querystring.parse(data));
            } else {
                var params = url.parse(request.url, true).query;
                route(handle, pathname, response, params);
            }
        });
    }

    var server = http.createServer(onRequest);

    server.listen(3000, '127.0.0.1');
    console.log('Server started on localhost port 3000');
}

module.exports.startServer = startServer;

handler.js

var fs = require('fs');

function home(response) {
    response.writeHead(200, { 'Content-Type': 'text/html' });
    fs.createReadStream(__dirname + '/index.html', 'utf8').pipe(response);
}

function review(response) {
    response.writeHead(200, { 'Content-Type': 'text/html' });
    fs.createReadStream(__dirname + '/review.html', 'utf8').pipe(response);
}

function api_records(response, params) {
    response.writeHead(200, { 'Content-Type': 'application/json' });
    response.end(JSON.stringify(params));
}

module.exports = {
    home: home,
    review: review,
    api_records: api_records
}

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>hfpp2012</title>
</head>

<body>
    <form action="/api/v1/records" method="post">
        name: <input type="text" name="name" /> age: <input type="text" name="age" />
        <input type="submit" value="Submit">
    </form>
</body>

</html>
7 条回复
  • mrxxxzx #1

    总觉得作者是潮州人

  • hfpp2012 #2

    是潮汕人

  • KaierChou #3
    hfpp2012 #10 回复

    看到这里我决定看完之后冲会员了 哈哈

  • hfpp2012 #4
    KaierChou #10 回复

    多谢支持,后面的会更好,这个系列的视频是早期录制的,后面的录制把握得更好,多学习,学学后端,学学前端,才是真正的 web 开发。

  • KaierChou #5
    hfpp2012 #10 回复

    胶己人胶己人.
    希望后面能 加点 RN , 这样 前,后,aqq全齐了

  • hfpp2012 #6
    KaierChou #10 回复

    加油,会慢慢计划。

  • jielong39 #7

    这一节东西有遗漏,router的代码没给,这里步骤有跳的

支付宝付款
微信扫码打赏

加我微信:15014006126

加 QQ 群:697272886(1 群)

加 QQ 群:856141852(2 群)

相似的视频
轻松学 Node.js - 基础篇 #13 web 服务器 part 5 路由

轻松学 Node.js - 基础篇 #13 web 服务器 part 5 路由

免费播放时长:05:37

3334 次点击

轻松学 Node.js - 基础篇 #9 web 服务器 part 1 介绍

轻松学 Node.js - 基础篇 #9 web 服务器 part 1 介绍

免费播放时长:05:32

3929 次点击

轻松学 Node.js - 基础篇 #10 web 服务器 part 2 响应 JSON

轻松学 Node.js - 基础篇 #10 web 服务器 part 2 响应 JSON

免费播放时长:03:44

3665 次点击

© Rails365 | 隐私条款 | 服务条款 | 粤ICP备15004902号 | 在线学员:8

Top