通过本文,你会对Express有一个较为具体的了解。

   起源

  2009年6月26日,TJ Holowaychuk提交了Express的第一次commit,接下来在2010年1月2日,有660次commits的Express 0.0.1版本正式发布。TJ和Ciaron Jessup是当时最主要的两个代码贡献者。截止到目前为止,Express拥有了5016次commit,版本号为4.11.1,由strongloop维护。

   定义

  Express是一个简洁而灵活的node.js web 应用框架,它提供一系列强大特性帮助你创建各种web应用。

   优秀特性

  1、路由分发

  它可以处理来自不同路径的请求

  2、请求处理

  将传入请求的handler传入request和response,对象中原先该有的还在,但是却加入了更多的新的特性。

  3、视图渲染

  Express为response对象添加了一个reader方法,主要能加载模板引擎和对应的视图文件,之后渲染成普通的HTML文档。

   安装
npm install express
   使用

  1、Hello World

 var express = require('express')
var app = express() app.get('/', function (req, res) {
res.send('Hello World')
}) app.listen(3000)

  我们用get()来捕获“get / ”请求,然后调一个回调函数,这个回调函数会被传入req,res两个对象,最后只用了res的res.send来返回整个页面的字符串。当然,Express里面有很多的内置方法可以用来进行路由控制,get,post,head,delete等等,具体可以参考Express官方文档

  2、创建一个服务器

var express = require('express');
var app = express(); var server = app.listen(3000, function() {
console.log('Express is listening to http://localhost:3000');
});

  首先把expressre quire进来,然后初始化一个实例并赋值给变量app,接下来再初始化一个server监听特定的3000端口,app.listen()实际上是包装了原生的http.createServer()函数。

  3、关于处理REST API

 app.get('/', function (req, res) {
res.render('index');
});
app.get('/itemslist', function (req, res) {
Item.get_items(function (err, items) {
if (err) {
items = [];
} res.render('itemslist', {
items: items
});
});
}); app.get('/shopcart', function (req, res) {
Promotion.get_all_promotion(function (err, promo) {
if (err) {
promo = [];
}
req.session.basic_items = Increase_multiply_promotion_info(req.session.basic_items, promo);
req.session.items_subtotal = caculate_item_subtotal(req.session.basic_items); console.log(req.session.basic_items, "__________________________-");
res.render('shopcart', {
items: req.session.basic_items,
items_subtotalstr: add_string_to_items_subtotal(req.session.items_subtotal)
});
});
}); app.post('/shopcart', function (req, res) {
req.session.allinputs = req.body.inputs;
if (req.session.basic_items == undefined) {
req.session.basic_items = [];
} if (req.session.allinputs != undefined) {
Item.get_item_from_barcode(req.session.allinputs, function (err, item) {
if (err) {
console.log("error 1");
}
var have_count_inputs = Dispose_inputs.add_count_to_barcodes(req.session.allinputs);
req.session.basic_items = Dispose_inputs.add_other_property_to_inputs(have_count_inputs, item);
res.end();
});
} else {
console.log("empty inputs");
res.end();
}
});

  这是一些我的关于如何处理一个小型购物网站REST API。

  

小提示:Express 建立在connect和node之上,意味着所有的connect中间件均可以在Express中使用。

ps:本文内容若是有误或者迷糊,还请指正或指出。

初步认识Node 之Express的更多相关文章

  1. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  2. Node.js Express 框架学习

    转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说 ...

  3. Node.js Express 框架

    Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP ...

  4. Windows下Node.js+Express+WebSocket 安装配置

    Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...

  5. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  6. React+Node.js+Express+mongoskin+MongoDB

    首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...

  7. Node.js Express框架

    Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...

  8. node.js + express(ejs) + mongodb(mongoose) 增删改实例

    MongoDB 安装步骤总结: 1.解压目录到d盘 mongodb 2.安装目录的下新建文件mongo.config文件 ##store data here dbpath=D:\mongodb\dat ...

  9. node.js express mvc轻量级框架实践

    本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js. 其实逻辑没什么可以深谈的,主要是想说说这套代码结构.结构如下图: js的代码比较难以维护 ...

随机推荐

  1. 百度推出新技术 MIP,网页加载更快,广告呢?

    我们在2016年年初推出了MIP,帮助移动页面加速(原理).内测数据表明,MIP页面在1s内加载完成.现在已经有十多家网站加入MIP项目,有更多的网站正在加入中.在我们收到的反馈中,大部分都提到了广告 ...

  2. 使用 Nodejs 搭建简单的Web服务器

    使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...

  3. Linux CentOS 配置Tomcat环境

    一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...

  4. 23种设计模式--中介者模式-Mediator Pattern

    一.中介者模式的介绍     中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,当然笔者也希望来个婚姻中介给我介绍一个哈哈哈,,回归正题中介者模式分成中介者类和用户类,根据接口编程的方式我们再 ...

  5. 算法与数据结构(十七) 基数排序(Swift 3.0版)

    前面几篇博客我们已经陆陆续续的为大家介绍了7种排序方式,今天博客的主题依然与排序算法相关.今天这篇博客就来聊聊基数排序,基数排序算法是不稳定的排序算法,在排序数字较小的情况下,基数排序算法的效率还是比 ...

  6. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

  7. 搭建属于自己的VIP积分系统(1)

    很久没写博客了,如果有写得不好的地方,还请多多见谅. 架构设计 需求分析 这篇文章主要是介绍此VIP系统的基础架构.说实在的,我其实对 架构方面也不是很懂,我这套框架 还是拿别人的东西改过来的,并不是 ...

  8. spring applicationContext.xml和hibernate.cfg.xml设置

    applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  9. BPM应用开发解决方案分享

    一.需求分析企业整体管理是一个完整的体系,如果 把这个体系比做一个拼图,企业信息化通过各个业务系统覆盖了一部分业务. 企业通过采购实施通用软件的方式,覆盖了企业的核心业务和专业化业务然而系统只满足了部 ...

  10. WINDOWS系统下MYSQL安装过程中的注意事项

    1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...