zoukankan      html  css  js  c++  java
  • Nodejs 之express框架的应用---简单的登录界面

    /**
     * Created by Administrator on 2016/12/29.
     */
        "use strict";
    const  myexpress=require("express");//启用express框架
    const app1=myexpress();
    app1.configure(function(){//配置服务器信息
        app1.use(myexpress.logger("dev"));//配置日志信息,要放在配置的最前面
        app1.use(myexpress.errorHandler());//配置错误日志模块,express会打印错误至控制台
        app1.use(myexpress.favicon(__dirname+"/public/group1/img/logo-2.png"));//配置网站logo前面的标签
        app1.use(app1.router);//加了这句话后,把路由监听的方法拦截静态资源的优先级就提高在静态资源之前
        app1.use(myexpress.static(__dirname+"/public/group1"));//配置加载静态资源html css js 字体等,__dirname是项目的根目录
        app1.use(myexpress.bodyParser());//使用业务post处理的时候需配置的
        app1.use(myexpress.methodOverride());//使用业务post处理的时候需配置-将非get请求都转换为post请求
    });
    
    app1.set("port","6060");//设置端口
    app1.listen(app1.get("port"),function(){//监听端口
        console.log("服务器启动了!")
    });
    //服务器对业务的处理
    app1.get("/login.do",function(request,response){//拦截get请求中的login.do,form表单提交上来的数据express就自动封装在request这个对象里面
        //console.log(request.query);//这里会打印出来请求的内容
        let username=request.query.username;//获取username下的值,定义let局部变量,需要使用"use strict"
        let pwd=request.query.password;//获取password下的值
        //console.log(username+"get方法");
        //console.log(pwd+"get方法");
        if(username=="123"&&pwd=="123"){
            response.send("<h1>登录成功</h1>");
            //这里express的send等同于response.writeHead,response.write(),response.end();send只能返回字符串
        }else{
            response.send("<h1>登录失败</h1>")
        }//使用get方法在浏览器的网址末端容易看见账号和密码,所有一般建议使用post方法
    });
    app1.post("/login2.do",function(request,response){
        console.log(request);
        let username1=request.body.username1;
        let pwd1=request.body.pwd1;
        console.log(username1);
        console.log(pwd1);
        if(username1=="234"&&pwd1=="234"){
            response.redirect("loginIndex.html");//redirect(重定向)可以跳转至一个指定的页面
        }else{
            response.redirect("error.html");//也可以重定向跳转到"http://www.baidu.com"
        }
    });
    app1.get("/index.html.do",function(request,response,next){
        //当拦截的资源路径和action的静态路径同级的时候,action的优先级会高于拦截请求,所有它不会跳转到拦截的页面,
        //它不会进到这个函数,需要在服务器配置上加一点东西,这句话一定要写在配置静态资源之前
        let username2=request.body.username2;
        let pwd2=request.body.pwd2;
        if(username1=="234"&&pwd1=="234"){
            next();//
        }else{
            response.redirect("error.html");
        }
    });
    

      下面这段配置中出现的一个小问题,****注意配置的顺序。若配置顺序出错,会造成request.body中取不到值,返回undefined.

    正确的配置顺序应该是下面这样的:

    const  myexpress=require("express");//启用express框架
    const app1=myexpress();
    app1.configure(function(){//配置服务器信息
    app1.use(myexpress.logger("dev"));//配置日志信息,要放在配置的最前面
    app1.use(myexpress.errorHandler());//配置错误日志模块,express会打印错误至控制台
    app1.use(myexpress.bodyParser());//使用业务post处理的时候需配置的
    app1.use(myexpress.methodOverride());//使用业务post处理的时候需配置-将非get请求都转换为post请求
    //***post处理配置是需要放在静态资源配置之前,error日志之后。且log日志配置放第一位,下来是error日志配置
    app1.use(app1.router);//加了这句话后,把路由监听的方法拦截静态资源的优先级就提高在静态资源之前
    //***这句话是处理get拦截的是一个静态资源
    app1.use(myexpress.static(__dirname+"/public/group1"));//配置加载静态资源html css js 字体等,__dirname是项目的根目录
    app1.use(myexpress.favicon(__dirname+"/public/group1/img/logo-2.png"));//配置网站logo前面的标签
    });

     

    补充之:express安装

    1.给项目文件中生成package.json文件:

    从shell命令行里进入项目的根目录,输入....dec29>npm init 回车后,文件夹里会生成json的文件

    2.从shell命令行里进入项目的根目录,输入....dec29>npm install express@3 --save-dev 回车,等待一定时间后,就会在项目文件里生成一个

    3.第2个方法是从国外的资源库中下载express,也可以将其映射到国内的资源中,使用如下方法:

       从shell命令行里进入项目的根目录,输入....dec29>npm install nrm -g回车安装nrm;然后nrm;...ls ...mrn ls

    4.安装mysql文件 

      从shell命令行里进入项目的根目录,输入....dec29>npm install mysql --save-dev回车,等待一段时间即可。

  • 相关阅读:
    20200902
    20200808
    20200801
    20191017
    LeetCode #974. Subarray Sums Divisible by K 数组
    LeetCode #532. K-diff Pairs in an Array 数组 哈希 双指针
    LeetCode #234. Palindrome Linked List 链表 栈 链表逆置
    LeetCode #307. Range Sum Query
    LeetCode #45. Jump Game II 数组 贪心
    LeetCode #55. Jump Game 数组 贪心 线性DP 回溯
  • 原文地址:https://www.cnblogs.com/potato-lee/p/6234503.html
Copyright © 2011-2022 走看看