zoukankan      html  css  js  c++  java
  • 二十二、Node.js-get&post

    get:

    前台代码:

    <body>
    <h1>登录</h1>
    <form action="/dologin" method="get">
        账号<input type="text" name="username">
        密码<input type="text" name="password">
        <input type="submit" value="登录">
    </form>
    </body>

    参数传递通过URL传值:

    点击登录之后:

    后台获取数据代码:

    var http = require("http")
    var url = require("url")
    var ejs = require('ejs')
    http.createServer(function (req, res) {
        res.writeHead(200, {"Content-Type": "text/html;charset='utf-8'"})
        var allUrl = req.url;
        var parseUrl = url.parse(allUrl,true);
        var path = parseUrl.pathname;
        if (path == "/login") {//显示登录页面
            ejs.renderFile("views/loginPage.ejs",{},function (err,data) {
                res.end(data)
            })
        } else if (path == "/dologin") {//执行登录操作
            //后台获取前台get传值数据
            console.log(parseUrl.query);//{ username: '111', password: '222' }
            res.end("dologin")
        } else  {//显示index页面
            ejs.renderFile("views/index.ejs",{},function (err,data) {
                res.end(data)
            })
        }
    }).listen(8000)

    post:

    前台代码:

    <h1>登录</h1>
    <form action="/dologin" method="post">
        账号<input type="text" name="username">
        密码<input type="text" name="password">
        <input type="submit" value="登录">
    </form>

    点击登录之后url里面没有传值:而是在头文件里面传值

    后台获取数据代码:

    var http = require("http")
    var url = require("url")
    var ejs = require('ejs')
    http.createServer(function (req, res) {
        res.writeHead(200, {"Content-Type": "text/html;charset='utf-8'"})
        var allUrl = req.url;
        var parseUrl = url.parse(allUrl,true);
        var path = parseUrl.pathname;
        //获取前台的传值方式get还是post
        var method=req.method.toLowerCase();
        console.log(method);
        if (path == "/login") {//显示登录页面
            ejs.renderFile("views/loginPage.ejs",{},function (err,data) {
                res.end(data)
            })
        } else if (path == "/dologin"&&method=='get') {//执行登录操作
            //后台获取前台get传值数据
            console.log(parseUrl.query);//{ username: '111', password: '222' }
            res.end("dologin")
        } else if (path == "/dologin"&&method=='post') {//执行登录操作
            //后台获取前台post传值数据
            var  postStr='';
            req.on("data",function (chunk) {//注意这里回调函数只写一个参数
                postStr+=chunk;
            })
            req.on("end",function (err,chunk) {
                console.log(postStr);//username=111&password=222
                //后台向前台输出js逻辑:
                res.end("<script>alert('登录成功!');history.back()</script>")
            })
        } else  {//显示index页面
            ejs.renderFile("views/index.ejs",{},function (err,data) {
                res.end(data)
            })
        }
    }).listen(8000)
  • 相关阅读:
    effective c++ 条款10 让operator= 返回*this的引用
    基于vs2008的opengl开发环境的配置
    effective c++ 条款13 以对象管理资源
    effective C++ 条款06如果你不想让编译器为你生成函数就应该明确拒绝
    effective c++条款07为多态基类声明为virtual析构函数
    effective c++条款08别让异常逃离析构函数
    effective c++条款11 在operator=中处理“自我赋值”
    ubuntu 下的截图工具
    effective c++ 条款12 赋值对象时勿忘其每一个成员
    [linux 安装]修改centos的yum源
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/10772616.html
Copyright © 2011-2022 走看看