nodejs之静态文件托管、 路 由、EJS 模板引擎、GET、POST

1、静态文件托管

  静态文件托管:是指对于一个js方法进行封装,提高代码可读性

//fs模块
    var fs=require(‘fs‘);
    //path模块
    var path=require(‘path‘);  /*nodejs自带的模块*/
    //url模块
    var url=require(‘url‘);

    //获取文件类型的方法  私有
    function getMime(extname,callback){  /*获取后缀名的方法*/

        fs.readFile(‘./mime.json‘,function(err,data){

        if(err){
            console.log(‘mime.json文件不存在‘);
            return false;
        }
        //console.log(data.toString());

        var Mimes=JSON.parse(data.toString());

        var result= Mimes[extname] || ‘text/html‘;

        callback(result)

        })

    }

    exports.statics=function(req,res,staticpath){

        var pathname=url.parse(req.url).pathname;   /*获取url的值*/

        if(pathname==‘/‘){
        pathname=‘/index.html‘; /*默认加载的首页*/
        }
        //获取文件的后缀名
        var extname=path.extname(pathname);

        if(pathname!=‘/favicon.ico‘){  /*过滤请求favicon.ico*/
        //console.log(pathname);
        //文件操作获取 static下面的index.html

        fs.readFile(staticpath+‘/‘+pathname,function(err,data){

            if(err){  /*么有这个文件*/

            console.log(‘404‘);

            fs.readFile(staticpath+‘/404.html‘,function(error,data404){
                if(error){
                console.log(error);
                }
                res.writeHead(404,{"Content-Type":"text/html;charset=‘utf-8‘"});
                res.write(data404);
                res.end(); /*结束响应*/
            })

            }else{ /*返回这个文件*/

               getMime(extname,function(mime){
                res.writeHead(200,{"Content-Type":""+mime+";charset=‘utf-8‘"});
                res.write(data);
                res.end(); /*结束响应*/
            });

            }
        })

        }

    }

2、路由
  路由:是后台管理页面的跳转

   var http = require(‘http‘);
    var url = require(‘url‘);

    http.createServer(function (req,res) {
        var  pathname = url.parse(req.url).pathname;
        if(pathname==‘/login‘){
        res.end(‘login‘);
        }else  if(pathname==‘/register‘){
        res.end(‘register‘);
        }else if(pathname==‘/order‘){
        res.end(‘order‘);
        }else {
        res.end(‘index‘);
        }
    }).listen(‘8001‘);

3、EJS 模块引擎   1、安装ejs

        npm install ejs
    2、引入ejs模块
        var ejs = require(‘ejs‘);
    3、调用ejs.renderFile,
        if(pathname==‘/login‘){
        var data=‘我是后台数据‘;
        var list=[‘1‘,‘2‘,‘3‘];
        ejs.renderFile(‘EJS/views/login.ejs‘, //跳转ejs渲染界面
                {msg:data,list:list}, //后台传入数据到前端ejs界面
                function (err,data) {
            if(err){
            console.log(err);
            return false;
            }
            console.log("hha");
            res.end(data);
        })
        }
    4、ejs前端界面获取后台数据
        <h2><%=msg%></h2>
        <ul>
            <%
            for(var i =0 ;i<list.length;i++){
                %>
                <li><%=list[i]%></li>
                <%
            }
            %>
        </ul>

5、EJS 常用标签

      1、<% %>流程控制标签
      2、<%= %>输出标签(原文输出 HTML 标签)
      3、<%- %>输出标签(HTML 会被浏览器解析)

具体的ejs操作,请查阅:https://www.npmjs.com/package/ejs

4、后台获取get,post请求数据

   1、获取请求方式
        var method=req.method.toLowerCase();
    2、get请求,拿去其数据
         var params =url.parse(req.url,true).query;
         console.log(params);
    3、post请求,拿取其数据,通过事件触发机制
        var postStr = "";
        req.on(‘data‘,function (chunk) {//监听post请求,获取数据
            postStr += chunk;
        })
        req.on(‘end‘,function (err,chunk) { //一块块读取到数据后,将数据存储起来
            fs.appendFile(‘login.txt‘,postStr+‘\n‘,function (err) {//将登陆信息写入文件,可以改成mysql,存入数据库
            if(err){
                console.log(err);
                return ;
            }
            console.log("写入文件成功!");
            })
            res.end("<script>alert(‘登录成功‘); history.back()</script>");//返回登陆成功,并跳转到登陆界面
            res.end(‘dologin--post->‘+postStr);
         }

原文地址:https://www.cnblogs.com/ywjfx/p/10396655.html

时间: 2024-08-03 21:33:25

nodejs之静态文件托管、 路 由、EJS 模板引擎、GET、POST的相关文章

Nodejs WEB服务器 静态文件托管、 GET POST路由 EJS模板引擎(8)

1 Nodejs 静态文件托管 略 2. 路由 官方解释:路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET. POST 等)组成的, 涉及到应用如何响应客户端对某个网站节点的访问. 非官方解释:路由指的就是针对不同请求的 URL, 处理不同的业务逻辑.  3 路由静态文件提取 原 `services.js` 代码 // 引入模块 var http = require('http'); // fs 模块 var fs =require('fs'); // p

Express框架中如何引用ejs模板引擎

原文地址:http://www.cnblogs.com/greenteaone/p/3685733.html 1.如何在项目中安装ejs模板引擎 在NodeJS指南中利用利用以下命令建立网站的基本结构: express -t ejs microblog 运行这个命令后继续运行 cd microblog && npm install(安装项目的依赖属性), 发现安装的模板引擎是jade,而不是ejs.原因是现在的版本已经没有-t这个命令了,改为 express -e  microblog 运

EJS模板引擎

一.什么是模板引擎? 是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 常用的模板引擎有ejs .jade.smarty等. 二.为什么需要模板引擎? 前端开发的时候,经常有根据后台返回的数据,然后根据此数据生成html,最后渲染到页面中.比如: var data = [ {name: "leaf1"}, {name: "leaf2"}, {name: "leaf3"}

在express站点中使用ejs模板引擎

在express站点中使用ejs模板引擎 文/玄魂 目录 在express站点中使用ejs模板引擎    1 前言1 1.1         安装    1 1.2修改app.js  2 1.3创建测试页面2 前言 使用 vs创建的express站点,默认使用的是jade模板引擎,但是我不太喜欢这种方式,因为我觉得html本身的语义特性是我喜欢的,另外html本身也足够简洁,使用html自身做为模板语言更符合我的喜好,所以我选择ejs. 欢迎访问玄魂的博客 1.1        安装 在网站根目

koa ejs 模板引擎

Koa 中使用 ejs 模板的使用 1.安装 koa-views 和 ejs 1. 安装 koa-views npm install --save koa-views / cnpm install --save koa-views 2. 安装 ejs npm install ejs --save / cnpm install ejs --save 2.引入 koa-views 配置中间件 const views = require('koa-views'); app.use(views('vie

3 ~ express ~ 静态文件托管

静态资源文件处理 (一)设置静态资源托管目录 /* *  当 用户访问的 url 以 /public 开始 ,那么直接返回对应 __dirname + '/public' 下的文件  . 注意是双下划线 __ */ app.use('/public',express.static(__dirname+'/public')) (二)流程: 1,用户发送 http 请求  => url  =>  解析路由  => 找到匹配的规则  => 执行相应函数  => 返回指定内容给用户

nodejs express 静态文件的路径

当express 设置为静态文件服务器的时候.可以通过2种方式进行方位: 1,通过设置app.use('路径1','../a/b/image') express 路径的形式,如 src="路径/1.jpg" 进行访问 2,通过原始的访问形式进行 如 src="../a/b/image" 注意点: 1,当有express使用了多个路径的时候如:app.use('路径1','../a/b/image').app.use('路径1','../aa/bb/image'):如

(二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用

一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf模板引擎,可以使用模板引擎进行渲染处理,默认版本为2.1,可以重新定义Thymeleaf的版本号,在maven的配置文件中配置如下内容: <properties> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> &l

nodejs学习(二) ---- express中使用模板引擎jade

系列教程,上一节教程  express+nodejs快速创建一个项目 在创建一个项目后,views目录下的文件后缀为 .jade . 打开 index.jade,具体内容如下图(忽略 header.jade 和 footer.jade,下面教程会一步步创建) 页面解析出的样子如下图.完全是html标签 一.jade 模板引擎 介绍 模板引擎是一个库,或者一个使用一定的规则或者语言来解释数据并渲染视图的框架.模板引擎处理过的最终结果是一个视图页面,也就是html页面或者用户图形界面GUI.在MVC