初步认识Node 之Express
2015-01-23 11:34
253 查看
通过本文,你会对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文档。
安装
使用
1、Hello World
我们用get()来捕获“get / ”请求,然后调一个回调函数,这个回调函数会被传入req,res两个对象,最后只用了res的res.send来返回整个页面的字符串。当然,Express里面有很多的内置方法可以用来进行路由控制,get,post,head,delete等等,具体可以参考Express官方文档。
2、创建一个服务器
首先把expressre quire进来,然后初始化一个实例并赋值给变量app,接下来再初始化一个server监听特定的3000端口,app.listen()实际上是包装了原生的http.createServer()函数。
3、关于处理REST API
这是一些我的关于如何处理一个小型购物网站REST API。
小提示:Express 建立在connect和node之上,意味着所有的connect中间件均可以在Express中使用。
ps:本文内容若是有误或者迷糊,还请指正或指出。
起源
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:本文内容若是有误或者迷糊,还请指正或指出。
相关文章推荐
- 初步认识Express框架渲染视图
- 初步认识Node.js
- node.js学习认识五:Nodejs初阶之express
- 认识node.js:express(一)
- node.js学习认识六:Express4 启航指南
- Node.js Web开发(二)认识Express(上)
- Node.js初步认识
- 初步认识Node 之Web框架
- node.js-express框架的初步使用。
- node.js的学习历程九Cookie和Session的初步认识和理解
- Node.js学习(一)——Node.js的安装和express初步使用
- 初步认识Node 之Node为何物
- node web框架之express简单认识
- nodejs+express+mysql 之 简单的在线HTML编辑器
- json的初步认识
- 对UTF8编码的初步认识
- Nodejs 开发指南 Nodejs+Express+ejs 开发microblog开发心得
- 前端HTML与CSS初步认识
- Linux CentOS系统下安装node.js与express的方法
- TCP/IP协议初步认识 ——《TCP/IP Illustrated, Vol. 1: The Protocols》读书笔记