通过本文,你会对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. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  2. .Net多线程编程—任务Task

    1 System.Threading.Tasks.Task简介 一个Task表示一个异步操作,Task的创建和执行是独立的. 只读属性: 返回值 名称 说明 object AsyncState 表示在 ...

  3. Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter

    The C code in your library must interact with the Dreamweaver JavaScript interpreter at the followin ...

  4. SuperMap iClient for JavaScript 新手入门

    地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析和显示地理数 ...

  5. warensoft unity3d 更新说明

    warensoft unity3d 组件的Alpha版本已经发布了将近一年,很多网友发送了改进的Email,感谢大家的支持. Warensoft Unity3D组件将继续更新,将改进的功能如下: 1. ...

  6. 使用cmake自动构建工程

    公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IO ...

  7. C#中如何创建PDF网格并插入图片

    这篇文章我将向大家演示如何以编程的方式在PDF文档中创建一个网格,并将图片插入特定的网格中. 网上有一些类似的解决方法,在这里我选择了一个免费版的PDF组件.安装控件后,创建新项目,添加安装目录下的d ...

  8. 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...

  9. C语言可以开发哪些项目?

    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...

  10. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...