• express
      • 简介
        • Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
        • 使用 Express 可以快速地搭建一个完整功能的网站
      • 安装并运行
        • sudo npm install express
        • var express = require(“express”);
          var app = express();//初始化
      • 核心功能
        • 路由
          • get方法 — 根据请求路径来处理客户端发出的GET请求
          • app.get(path,cb);
            *   path:为请求的路径
            *   cb  :第二个参数为处理函数的回调,有两个参数request和response,代表请求信息和响应信息
          • 前端页面代码
            • <!DOCTYPE html>
              <html lang=“en”>
              <head>
                  <meta charset=“UTF-8”>
                  <title>Title</title>
              </head>
              <body>
              <form action=“/list” method=“post”>
                  用户名:<input type=“text” name=“user”><br>
                  密码: <input type=“password”><br>
                  <input type=“submit” value=发送>
              </form>
              </body>
              </html>
          • 服务端
            • //处理get方式发送的请求
              app.get(“/“, function (req,res) {
                  //返回一个静态文件
                  res.sendFile(__dirname+”/post.html”);
              });
              app.get(“/list”, function (req,res) {
                  //返回一个字符串
                  res.send(“get”+req.url);
              });
              app.post(“/list”, function (req,res) {

              res.send(“post”+req.url);
              });
              //all就是处理不管是任何方式发送的请求,*为任意路径
              app.all(“*”, function (req,res) {
                  res.send(“Welcome to Express”);
              });
              //设置端口号
              app.listen(8080);

          • 获取请求的参数
            • 获取请求参数
              *  req.host:返回请求头里取的主机名(不含端口号)
              *  req.path:返回请求的url的路径名
              *  req.query:是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}
              *  req.params:获取路由的parameters
          • 获取返回的参数
            • 4.返回参数
              *   res.send();返回数据,默认会转为字符串,编码为utf8
              *   res.sendFile();返回文件
              *   res.sendStatus();返回状态码
          • 例子
        • 中间件
          • 概念
            • 中间件就是处理HTTP请求的函数,用来完成各种特定的任务,比如检测用户是否登录,分析数据,以及其他在需要最终将数据发送给用户之前完成的任务
              * 特点:
              * 1.每个中间件都可以控制流程是否继续执行
              * 2.每个中间件的req res都是用的同一个对象
              * 3.如果出错了,转交错误处理中间件进行处理
              * 4.最大的特点是,一个中间件处理完,可以把相应数据再传递给下一个中间件
              * 5.如果调用回调函数的next参数表示将请求数据传递给下一个中间件
          • 例子:
            • //中央发了100快钱
              app.use(function (req,res,next) {
                  req.money = 100;
                  next();
              });
              //市政府
              app.use(function (req,res,next) {
                  req.money -= 20;
                  //如果next传了一个不为null的参数,说明有错,会中止其他中间件并执行错误处理中间件
                  next(“钱丢了”);
              });
              //村
              app.use(function (req,res,next) {
                  req.money -= 50;
                  next();
              });
              //错误处理中间件
              app.use(function (err,req,res,next) {
                  console.error(err);
                  res.end(err);
              });

              app.all(‘/*’, function(req,res){
                  res.send(“”+req.money);
              });

              app.listen(8080);

        • 模板引擎
          • 模板引擎-首先需要先安装才能用
            *   nam install ejs
            *   1.指定渲染模板引擎
            *       app.set(“view engine”,”ejs”);
            *   2.设置放模板文件的目录
            *       add.set(“views”,path.join(__dirname,”/“));
            *   3.rander函数,对网页模板进行渲染,在渲染模板时locals可谓其模板传入变量值,在模板中就可以条用所传变量了
            *       res.rander(view,[local],callback);
          • 前端代码
            • <!DOCTYPE html>
              <html lang=“en”>
              <head>
                  <meta charset=“UTF-8”>
                  <title>Title</title>
              </head>
              <body>
              姓名:<%=name%><br>
              年龄:<%=age%>
              哪谁的年龄也是:<%=age%>
              </body>
              </html>
          • 服务器端代码
            • app.set(“view engine”,”ejs”);
              app.set(“views”,__dirname);//放在当前目录下
              app.get(“/“, function (req,res) {
                  //默认模板文件后缀格式是pjs
                  res.render(“muban”,{
                      name:”tangcaiye”,
                      age:18
                  });
              });
        • cookie
          • 安装cookie-parser模块
          • npm install cookie-parser
          • 代码
            • var express = require(“express”);
              var cookieParser = require(“cookie-parser”);

              var app = express();
              app.use(cookieParser());

              app.get(“/“, function (req,res) {
                  //如果请求中cookie存在visited,则输出cookie
                  //否则,设置cookie字段visited,并设置过期时间
                  if (req.cookies.visited){
                      res.send(“已访问过”);
                  }else {
                      res.cookie(“visited”,”1”,{maxAge: 10*60*1000});
                      res.send(“第一次访问”);
                  }
              });

              app.listen(8080);

          • 参数说明
            • expires:cookie的过期时间,GMT格式。如果没有指定或者设置为0,则产生新的cookie。
            • maxAge:是设置过去时间的方便选项,其为过期时间到当前时间的毫秒值。
      • api网址:
        • https://www.zybuluo.com/XiangZhou/note/208532

nodejs(三)上之express的更多相关文章

  1. 【转载】nodejs,npm,express分别什么?

    很多刚刚接触nodejs的初学者,都会经历一个很繁冗的环境安装过程. 一般主要要安装nodejs,npm和express三样东西.那么这三样东西分别是干什么的呢? 本篇文章就大致介绍一下这三样东西分别 ...

  2. # nodejs模块学习: express 解析

    # nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...

  3. nodejs-使用multer实现多张图片上传,express搭建脚手架

    nodejs-使用multer实现多张图片上传,express搭建脚手架 在工作中,我们经常会看到用户有多张图片上传,并且预览展示的需求.那么在具体实现中又该怎么做呢? 本实例需要nodejs基础,本 ...

  4. Node.js 笔记(一) nodejs、npm、express安装

    Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应 ...

  5. nodejs 接收上传的图片

    1.nodejs接收上传的图片主要是使用formidable模块,服务器是使用的express搭建. 引入formidable var formidable = require('./node_mod ...

  6. Node.js 笔记(一) nodejs、npm、express安装(转)

    转载地址:http://blog.csdn.net/haidaochen/article/details/7257655 Windows平台下的node.js安装 直接去nodejs的官网http:/ ...

  7. Windows 7 搭建 nodejs、npm、express 环境

    准备工作: 下载nodejs (exe format)(http://nodejs.org/) 下载npm(zip format)(http://nodejs.org/dist/npm/) 开始安装 ...

  8. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

    感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...

  9. Nodejs进阶:基于express+multer的文件上传

    关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...

随机推荐

  1. [Spring Framework]学习笔记--@Component等stereotype的基础

    在继续讲解Spring MVC之前,需要说一下常用的几个用来标记stereotype的annotation. @Component,@Controller,@Repository,@Service. ...

  2. JAVA-Word转PDF各种版本实现方式

    当下做一个项目,就是各种操作office,客户的需求总是各种不按常理,来需求就得搞啊.对JAVA操作office这方面真是头大,弟弟是真滴不懂不会啊.无奈只好试啊试的.网上一大堆好使的,一大堆不好使的 ...

  3. Scrum培训心得体会

    # Scrum培训心得体会 非常荣幸能够参加公司组织的这场为期两天的培训,赛宝的老师讲的非常好.通过这次学习,理解了当前最流行的Scrum开发框架,下面总结了我对Scrum的理解. ## scrum的 ...

  4. xcode6 dyld_sim is not owned by root

    如果运行复制过来的xcode可能会这个提示,xcode6 dyld_sim is not owned by root解决方法打开终端 输入sudo xcode-select -switch /Appl ...

  5. love2d杂记9--光照效果

    光照效果需要用shader,这个我一直没学,现在时间较少,先放到这里,有时间我再补,如果大家 发现好的opengl shader教程(如果没记错的love2d用的是glsl 1.1),推荐一下. 这里 ...

  6. Tomcat Ajax跨域访问

    http://ibleave60.blog.51cto.com/2669415/1208652 http://enable-cors.org/server.html 下载cors-filter-1.7 ...

  7. 记一次redis攻击

    服务器挖矿病毒的排查过程 事情起因:朋友的一台阿里云主机,登录特别卡,找我看看 这一看就感觉出问题了,机器特别卡,top看了一眼,cpu几乎是100%运行 但是奇怪的是用top命令完全看不出来哪个进程 ...

  8. Java编译后产生class文件的命名规则

    今天刚好有同学问了下Java编译后产生的.class文件名的问题,虽然一直都在使用Java做开发,但是之前对编译后产生的.class文件名的规范也基本没做了解过,也真的是忏愧啊!今天无论如何都要总结下 ...

  9. kettle利用触发器实现数据同步

    2016年8月17日 一.目的 通过触发器实现数据同步二.思路 1.在数据库需要同步的源表中建立一个insert触发器,当有新数据插入时,会自动将新插入数据的主键记录到临时表temp中.(当然也可以记 ...

  10. Apache -- 压力测试工具ab.exe

    ab全称ApacheBench是Apache超文本传输协议(HTTP)的性能测试工具.是描绘当前所安装的Apache的执行性能, 主要是显示你安装的Apache每秒可以处理多少个请求Apache自带的 ...