node08---Express框架

简介:
复制代码
一、Express框架
Express框架是后台的Node框架,所以和jQuery、zepto、yui(雅虎的)、bootstrap都不一个东西。
Express在后台的受欢迎的程度,和jQuery一样,就是企业的事实上的标准。

● 原生Node开发,会发现有很多问题。比如:
    ■ 呈递静态页面很不方便,需要处理每个HTTP请求,还要考虑304问题
    ■ 路由处理代码不直观清晰,需要写很多正则表达式和字符串函数
    ■ 不能集中精力写业务,要考虑很多其他的东西

我们自己可以把第一天的作业,就是那个静态文件服务给封装成为模块。封装的越多,就自己做出了类似Express的东西。

● EXPRESS的哲学是在你的想法和服务器之间充当薄薄的一层。这并不意味着他不够健壮,或者没有足够的有用特性,而是尽量少干预你,让你充分表达自己的思想,同时提供一些有用的东西。

英语官网:http://expressjs.com/
中文官网:http://www.expressjs.com.cn/
复制代码
复制代码
整体感知,Express框架。
安装Express框架,就是使用npm的命令。
npm install --save express
--save参数,表示自动修改package.json文件,自动添加依赖项。(也可以直接复制过来)

路由能力:
var express = require("express");

var app = express();

app.get("/",function(req,res){
    res.send("你好");
});

app.get("/haha",function(req,res){
    res.send("这是haha页面,哈哈哈哈哈哈");
});

app.get(/^\/student\/([\d]{10})$/,function(req,res){
    res.send("学生信息,学号" + req.params[0]);
});

app.get("/teacher/:gonghao",function(req,res){
    res.send("老师信息,工号" + req.params.gonghao);
});

app.listen(3000);

静态文件伺服能力:
app.use(express.static("./public"));

模板引擎:
var express = require("express");

var app = express();

app.set("view engine","ejs");

app.get("/",function(req,res){
    res.render("haha",{
        "news" : ["我是小新闻啊","我也是啊","哈哈哈哈"]
    });
});

app.listen(3000);

我们学习的是Express4.X,和Express3.X差别非常大。
复制代码
复制代码
二、路由
当用get请求访问一个网址的时候,做什么事情: 
app.get("网址",function(req,res){
    
});

当用post访问一个网址的时候,做什么事情:
app.post("网址",function(req,res){
    
});

如果想处理这个网址的任何method的请求,那么写all
app.all("/",function(){
    
});

这里的网址,不分大小写,也就是说,你路由是
app.get("/AAb",function(req,res){
    res.send("你好");
});
实际上小写的访问也行。
所有的GET参数,? 后面的都已经被忽略。 锚点#也被忽略
你路由到/a , 实际/a?id=2&sex=nan 也能被处理。

正则表达式可以被使用。正则表达式中,未知部分用圆括号分组,然后可以用req.params[0]、[1]得到。
req.params类数组对象。
app.get(/^\/student\/([\d]{10})$/,function(req,res){
    res.send("学生信息,学号" + req.params[0]);
});

冒号是更推荐的写法。
app.get("/student/:id",function(req,res){
    var id = req.params["id"];
    var reg= /^[\d]{6}$/;   //正则验证
    if(reg.test(id)){
        res.send(id);
    }else{
        res.send("请检查格式");
    }
});


表单可以自己提交到自己上。 
app.get("/",function(req,res){
    res.render("form");
});

app.post("/",function(req,res){
    //将数据添加进入数据库
    res.send("成功");
});

适合进行 RESTful路由设计。简单说,就是一个路径,但是http method不同,对这个页面的使用也不同。
/student/345345
get  读取学生信息
add     添加学生信息
delete  删除学生新
复制代码

01.js

复制代码
var express = require("express");//引入文件夹,不用http库

var app = express();

app.get("/",function(req,res){//http://localhost:3000/
    res.send("你好");
});

app.get("/haha",function(req,res){//http://localhost:3000/haha
    res.send("这是haha页面,哈哈哈哈哈哈");
});

app.get(/^\/student\/([\d]{10})$/,function(req,res){//http://localhost:3000/student2222
    res.send("学生信息,学号" + req.params[0]);
});

app.get("/teacher/:gonghao",function(req,res){//http://localhost:3000/teacher/:gonghao
    res.send("老师信息,工号" + req.params.gonghao);
});

app.listen(3000);
复制代码

02.js

复制代码
/**
 * Created by Danny on 2015/9/22 9:22.
 */
var express = require("express");

var app = express();

app.use(express.static("./public"));//use表示使用中间件,public是一个工程的文件夹根目录,提供静态服务器。

app.get("/haha",function(req,res){
    res.send("haha ");
});

app.listen(3000);
复制代码

03.js

复制代码
/**
 * Created by Danny on 2015/9/22 9:37.
 */
var express = require("express");
var app = express();

app.set("view engine","ejs");//相当于引入require("ejs");

app.get("/",function(req,res){
    res.render("haha",{//默认从views文件夹找haha.ejs
        "news" : ["我是小新闻啊","我也是啊","哈哈哈哈"]
    });
});

app.listen(3000);

/*
haha.ejs : 
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>哈哈哈哈</h1>
    <ul>
        <% for(var i = 0 ; i < news.length ; i++){ %>
            <li><%= news[i] %></li>
        <% } %>
    </ul>
</body>
</html>
*/
复制代码

04.js

复制代码
/**
 * Created by Danny on 2015/9/22 9:37.
 */
var express = require("express");
var app = express();


//无视大小写,? #
app.get("/AAb",function(req,res){
    res.send("你好");
});

// 冒号  http://localhost:3000/student/123456  输出:123456
app.get("/student/:id",function(req,res){
    var id = req.params["id"];
    var reg= /^[\d]{6}$/;
    if(reg.test(id)){
        res.send(id);
    }else{
        res.send("请检查格式");
    }
});

//冒号   http://localhost:3000/etudent/1234567  输出:etudent1234567
app.get("/:username/:oid",function(req,res){
    var username = req.params["username"];
    var oid = req.params["oid"];

    res.write(username);
    res.end(oid);
});

app.listen(3000);
复制代码

05.js

复制代码
/**
 * Created by Danny on 2015/9/22 10:22.
 */
var express = require("express");

var app = express();

//设置模板引擎
app.set("view engine","ejs");

app.get("/",function(req,res){
    res.render("form");
});

app.post("/",function(req,res){
    //将数据添加进入数据库
    res.send("成功");
});

app.listen(3000);

/*
views文件夹中form.ejs:
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form action="#" method="post">
        <input type="text" name="name"/>
        <input type="text" name="age"/>

        <input type="submit"/>
    </form>
</body>
</html>*/
复制代码

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7039491.html,如需转载请自行联系原作者


相关文章
|
存储 缓存 JavaScript
node 框架
Node 框架以其独特的优势和广泛的应用场景,成为了现代 Web 开发中不可或缺的一部分。掌握 Node 框架的开发技能,对于开发者来说具有重要的意义。
660 156
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
Web App开发 缓存 监控
如何解决Node框架中内存管理的挑战?
解决 Node 框架中内存管理的挑战需要综合运用多种方法,并且需要在开发过程中保持谨慎和细心,不断优化和改进代码。同时,定期进行内存管理的检查和维护也是非常重要的。
462 160
|
安全 前端开发 JavaScript
Node框架的优缺点
Node 框架的优点使其在现代 Web 开发中具有重要地位,但同时也需要开发者在使用过程中注意其缺点,合理选择和应用,以充分发挥其优势,避免潜在问题的出现。随着技术的不断发展和完善,Node 框架也在不断改进和优化,以更好地适应各种应用需求。
658 155
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1075 155
|
11月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
974 1
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
324 0