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(''); fs.readFile(staticpath+'/404.html',function(error,data404){
if(error){
console.log(error);
}
res.writeHead(,{"Content-Type":"text/html;charset='utf-8'"});
res.write(data404);
res.end(); /*结束响应*/
}) }else{ /*返回这个文件*/ getMime(extname,function(mime){
res.writeHead(,{"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('');

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

        npm install ejs
、引入ejs模块
var ejs = require('ejs');
、调用ejs.renderFile,
if(pathname=='/login'){
var data='我是后台数据';
var list=['','',''];
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);
})
}
、ejs前端界面获取后台数据
<h2><%=msg%></h2>
<ul>
<%
for(var i = ;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();
、get请求,拿去其数据
var params =url.parse(req.url,true).query;
console.log(params);
、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);
}

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

  1. node--静态文件托管,路由,模板引擎

    1.路由 路由是由一个URI和一个特定的HTTP方法(GET/POST)组成的 涉及到应用如何响应客户端对某个网站节点的访问 2.ejs 3.get/post 1)get获取数据 通过Url类中的qu ...

  2. Node.js学习笔记(七) --- Node.js的静态文件托管、路 由、EJS 模板引擎、GET 、POST

    1 . Nodejs 静态文件托管静态 web 服务器封装 2 . 路由 官方解释:  路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET.POST 等)组成的, ...

  3. 二十、Node.js- WEB 服务器 (三)静态文件托管、 路 由

    1.Nodejs 静态文件托管 上一讲的静态 web 服务器封装 项目结构: Web服务器封装成的模块:router.js代码: var http=require('http'); var fs=re ...

  4. node.js 设置静态文件托管

    1.在app.js文件中设置静态文件托管 /*应用程序入口文件*/ /*加载express模块*/ var express = require('express'); /*加载模板处理模块*/ var ...

  5. 前端笔记之NodeJS(三)Express&ejs模板引擎&请求识别

    一.Express框架 1.1基本使用 创建http服务器特别麻烦,express框架解决了这个的问题. Express在node界的地位,就相当于jQuery在DOM界的地位.jQuery的核心就是 ...

  6. express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用

    express官网 postman工具下载地址  multer的npm文档地址 express模板引擎怎么使用  地址:http://www.expressjs.com.cn/guide/using- ...

  7. nodejs-5.1 ejs模板引擎

    ejs官方文档:https://ejs.bootcss.com/ 1.什么是 EJS? "E" 代表 "effective",即[高效]. EJS 是一套简单的 ...

  8. node+ejs模板引擎的应用

    前言: 最近在开发一个关于后台管理系统的基础开发平台,解释一下就是不管什么管理系统都有一些相同的功能,但是又有一些细节不一样,这个基础平台就是实现对于基础功能可以进行快速开发,主要有自定义的生成功能代 ...

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

    1.如何在项目中安装ejs模板引擎 在NodeJS指南中利用利用以下命令建立网站的基本结构: express -t ejs microblog 运行这个命令后继续运行 cd microblog &am ...

随机推荐

  1. web规范文档说明三

    网站头部:    head/header(头部) top(顶部)导航:   nanv 导航具体区分:topnav(顶部导航).mainnav(主导航).mininav(迷你导航).textnav(导航 ...

  2. 标准C语言(10)

    指针数组的每个存储区是一个指针类型的存储区,字符指针数组包含多个字符类型的指针,每个字符类型指针可以代表一个字符串.字符指针数组可以用来代表多个相关字符串,二维字符数组也可以用来记录多个相关字符串,通 ...

  3. ftp不能复制文件

    解决办法: ie->工具->internet选项->安全->自定义级别->下载->文件下载->启用

  4. 关于scanf一个变量的覆盖问题

    假如你为了省空间,在scanf一个很长的字符串s后,又重复scanf 字符串s, 但是后面的s比前面的s短,那么在s后面一定有没覆盖的原字符串的字符: 那么在取字符串长度时会不会还是原来的s长度而不是 ...

  5. 模意义下的FFT算法

    //写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序 ...

  6. Tushare基础调用及处理

    创建索引: db.daily.createIndex({code:1,date:1,'index':1}) mongodb查看表有几列: map = function() { for (var key ...

  7. C# 转json

    #region MyRegion StringBuilder sb = new StringBuilder(); sb.Append("{"); foreach (System.R ...

  8. js 创建节点 以及 节点属性 删除节点

    case 'copy': var B1 = document.getElementById("B1"); //获得B1下的html文本 var copy_dom = documen ...

  9. 1502: [NOI2005]月下柠檬树

    一堆圆台平行光的投影 在草稿纸上画一下,发现对于一个圆,它投影完还是一个半径不变的圆. 定义树的轴在投影平面上经过的点为原点,定一个正方向,建立平面直角坐标系, 能发现,对于一个半径为\(r\),高度 ...

  10. POJ1703--Find them, Catch them(种类并查集)

    Time Limit: 1000MSMemory Limit: 10000K Total Submissions: 32909Accepted: 10158 Description The polic ...