美文网首页Node.js
Node.js基础入门04

Node.js基础入门04

作者: 祈粼 | 来源:发表于2021-02-25 19:06 被阅读0次

    node笔记 --祈粼

    命名规则:文件或函数或变量命名只能以字母开头
    模块:

    一般都是一个JS文件一个模块,而多个JS文件之间是可以相互require的(也就是相互引用),他们共同实现了一个大的功能

    在Node.js当中,一个JavaScript文件中定义的变量或函数,都只在这个当前的文件内有效,也可以理解为,每个JS文件都是一个闭包结构,所以当我们需要从此JS文件外部引用这些变量或函数的时候,必须使用exports对象进行对象的暴露,而调用者需用通过require()命名来引入这个JavaScript文件

    A文件 --require--> B文件 ---require--> C文件

    Node.js中exports与module.exports的区别

    每一个node.js执行文件
    都会自动创建一个module对象
    同时module对象都会创建一个名为exports的属性
    它的初始值都是{}
    exports就是module.exports

    一般require返回的是module.exports,在module.exports上可以导出函数、对象实例、基本类型的变量等,因此,一般就是用module.exports作为模块的导出

    如果想用exports作为模块的返回,那么就为它设置一个属性,并且不要在module.exports上同时导出同名的属性或者函数实例等(会替代exports)

    关于 require 导入路径问题

    一般用require导入的文件路径都需要加./
    如果不加则会去node_mudules文件里面查找 同级如果没有node_mudules文件会向上依次查找

    //npm install silly-datetime
    const sd = require("silly-datetime");//时间对象
    
    
    /*
        format:两个参数
        第一个:时间对象,就是你需要格式化的字符对象
        第二个:传入你需要指定的时间格式
    
        year:年
        month:月
        day:天
        hour:小时
        Minute:分钟
    
        Y:年   M:月   D:日   H:小时  m:分钟(注意大小写)
    */
    let now= sd.format(new Date(),"YYYYMMDDHHmm");
    
    console.log("北京时间:"+ now);
    
    

    nodeJS 表单提交 POST请求

    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>表单提交</title>
        <link rel="stylesheet" href="css/master.css"/>
    </head>
    <body>
        <div class="wrapper">
            <div class="title">注册中心</div>
            <form class="form" action="http://localhost:3000/dopost" method="post">
                <ul>
                    <li><input type="text" name="name" placeholder="请输入您的名字" class="txt"/></li>
                    <li><input type="password" name="password" placeholder="请输入您的密码" class="txt"/></li>
                    <li><input type="submit" placeholder="" class="btn"/></li>
                </ul>
                <div class="cl"></div>
            </form>
        </div>
    </body>
    </html>
    

    JS:

    const http = require("http");
    const queryString = require("querystring"); // 模块提供用于解析和格式化 URL 查询字符串的实用工具
    
    const server = http.createServer((req, res) => {
        console.log(req.method);//req.method:获取提交的方式:get/post
        if (req.url == "/dopost" && req.method.toLowerCase() == "post") {
            /*
                下面这个公式是post的请求接收公式
                这里只接收了一小段,防止一个过大的请求处理阻塞了这个进程
            */
            //传输中
            let allData = "";
            /*
                我们在本地电脑可能只会看到一次分段处理,但是在服务器端可能会有N个
            */
            req.addListener("data", chunk => {
                allData += chunk;
            });
            //传输完毕
            req.addListener("end", () => {
                let dataString = allData.toString();
                console.log("allData loading....");
                console.log(allData);
                //将dataString转换为一个对象
                let dataObj = queryString.parse(dataString);
                console.log("dataObj loading.....");
                console.log(typeof dataObj);
                console.log("名字:" + dataObj.name);
                console.log("密码:" + dataObj.password);
                res.end("success");
            });
        }
    });
    
    server.listen(3000, "127.0.0.1");
    
    

    相关文章

      网友评论

        本文标题:Node.js基础入门04

        本文链接:https://www.haomeiwen.com/subject/jwbufltx.html