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回车,等待一段时间即可。

 

posted @ 2016-12-29 18:31  potato~e-e  阅读(1583)  评论(0编辑  收藏  举报