NodeJs 创建一个简单的服务

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

个人学习记录,仅供参考

创建第一个应用

参考

步骤

引入 required 模块

var http = require("http");

创建服务器

/**
 * request 请求 输入-请求的信息
 * response 响应 输出-输出的东西
 * http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。
 */
http.createServer(function (req, res) {
    switch (req.url){
        case '/1.html':
            res.write("1111111");
            break;
        case '/2.html':
            res.write("22222222");
            break;
        default:
            res.write("404");
            break;
    }
    res.end();
}).listen(8888);

启动服务器

node server.js

接收前台数据

GET

前台代码提交表单
<form action="http://127.0.0.1:8080/www" method="get">
    用户名:<input type="text" name="user" value="">
    密码:<input type="password" name="pass" value="">
    <input type="submit" value="提交">
</form>
后台代码接收数据

接收进来的数据参数可以有三种方式去解析

const http = require('http');
    const querystring = require('querystring');
    http.createServer(function (req,res) {
        var GET = {};
        if(req.url.indexOf("?") != -1){
            var arr = req.url.split('?');
            var url = arr[0];
            GET = querystring.parse(arr[1]);
        }else {
            var url = req.url;
        }
        console.log(url,GET)// /aaa { user: '孙悟空', pass: '123456' }
        res.write('aaa');
        res.end();
}).listen(8080);

const http = require('http');
const urlLib = require('url');
http.createServer(function (req,res) {
    var obj = urlLib.parse(req.url,true)
    var url = obj.pathname;
    var GET = obj.query;
    console.log(url,GET)// /aaa { user: '孙悟空', pass: '123456' }
    res.write('aaa');
    res.end();
}).listen(8080);

POST

前台代码提交表单
<form action="http://127.0.0.1:8080/www" method="post">
    用户名:<input type="text" name="user" value="">
    密码:<input type="password" name="pass" value="">
    <input type="submit" value="提交">
</form>
后台代码接收数据

在这里咱们使用node提供的 querystring 方法去解析接收过来的数据

上代码

const http = require('http');
const querystring = require('querystring');
http.createServer(function (req,res) {
    var str = '';//接收数据
    //data ==> 有一段数据到达(很多次)每次执行一次就是分段一次
    var i = 0;
    req.on('data',function (data) {
        console.log(`第${i++}次收到数据`);//第0次收到数据(每次执行都会打印一个)
        str += data;
    });
    //end ==> 数据全部到达的时候 (只发生一次)
    req.on('end',function () {
        var POST = querystring.parse(str);
        console.log(POST);//{ user: '孙悟空', pass: '123123' }
    });
}).listen(8080);

以上知识点整合

const http = require('http');
const fs = require('fs');
const querystring = require('querystring');
const urlLib = require('url');
http.createServer(function (req,res) {
    //GET
        var obj = urlLib.parse(req.url,true);
        var url = obj.pathname;
        const GET = obj.query;
    //POST
        var str = '';
        req.on("data",function (data) {
            str += data;
        });
        req.on("end",function () {
            const POST = querystring.parse(str);
            /**
             * url==>要什么
             * GET==>get数据
             * POST==>post数据
             */
            console.log(url,GET,POST);
            //文件请求
            var file_name = './www'+url;
            fs.readFile(file_name,function (err,data) {
                if(err){
                    res.write('404')
                }else {
                    res.write(data)
                }
            })
        })
}).listen(8080);
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看