通过本文,你会对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. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...

  3. 【探索】机器指令翻译成 JavaScript

    前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...

  4. TSQL Identity 用法全解

    Identity是标识值,在SQL Server中,有ID列,ID属性,ID值,ID列的值等术语. Identity属性是指在创建Table时,为列指定的Identity属性,其语法是:column_ ...

  5. nodejs进阶(2)—函数模块调用

    函数调用 1. 文件内普通函数调用 创建一个js文件命名为2_callFunction.js,其中定义一个函数fun1,向返回对象输出了一段字符串“你好,我是fun1”. //------------ ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. Http请求

    HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文 一个HTTP请求报文由请求行(request line ...

  8. [内核笔记1]内核文件结构与缓存——inode和对应描述

    由来:公司内部外网记录日志的方式现在都是通过Nginx模块收到数据发送到系统消息队列,然后由另外一个进程来从消息队列读取然后写回磁盘这样的操作,尽量的减少Nginx的阻塞. 但是由于System/V消 ...

  9. jQuery禁用或启用

    禁用:.attr("disabled","disabled"); 启用:.removeAttr("disabled");

  10. Android6.0运行时权限管理

    自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有的权限而导致的无法安装 ...