初步认识Node 之Express

  通过本文,你会对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

1 var express = require(‘express‘)
2 var app = express()
3
4 app.get(‘/‘, function (req, res) {
5   res.send(‘Hello World‘)
6 })
7
8 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

 1 app.get(‘/‘, function (req, res) {
 2         res.render(‘index‘);
 3     });
 4     app.get(‘/itemslist‘, function (req, res) {
 5         Item.get_items(function (err, items) {
 6             if (err) {
 7                 items = [];
 8             }
 9
10             res.render(‘itemslist‘, {
11                 items: items
12             });
13         });
14     });
15
16     app.get(‘/shopcart‘, function (req, res) {
17         Promotion.get_all_promotion(function (err, promo) {
18             if (err) {
19                 promo = [];
20             }
21             req.session.basic_items = Increase_multiply_promotion_info(req.session.basic_items, promo);
22             req.session.items_subtotal = caculate_item_subtotal(req.session.basic_items);
23
24             console.log(req.session.basic_items, "__________________________-");
25             res.render(‘shopcart‘, {
26                 items: req.session.basic_items,
27                 items_subtotalstr: add_string_to_items_subtotal(req.session.items_subtotal)
28             });
29         });
30     });
31
32     app.post(‘/shopcart‘, function (req, res) {
33         req.session.allinputs = req.body.inputs;
34         if (req.session.basic_items == undefined) {
35             req.session.basic_items = [];
36         }
37
38         if (req.session.allinputs != undefined) {
39             Item.get_item_from_barcode(req.session.allinputs, function (err, item) {
40                 if (err) {
41                     console.log("error 1");
42                 }
43                 var have_count_inputs = Dispose_inputs.add_count_to_barcodes(req.session.allinputs);
44                 req.session.basic_items = Dispose_inputs.add_other_property_to_inputs(have_count_inputs, item);
45                 res.end();
46             });
47         } else {
48             console.log("empty inputs");
49             res.end();
50         }
51     });

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

  

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

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

时间: 2024-11-09 03:21:19

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

基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站

电影网站 ?? GitHub: https://github.com/bxm0927/movie-website 此项目是基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站. 主要功能模块: 一期:前台电影展示页.电影详情页.后台电影管理中心(电影录入.电影修改) 二期:用户登录注册注销功能.用户识别和持久化.后台用户管理中心(用户录入.用户修改).电影评论 <!-- more --> 图片预览 技术栈 [前端] HTML/CSS/JS:亘古不

[Node.js] express 安装的问题

今天学习express的时候发现安装了express模块但是死活不能使用express命令,在windows上提示内部或者外部命令.在Linux上也不能使用,类似的错误信息.在网上找到了解决方案,记录如下: 版本问题,安装的时候使用命令: npm install -g [email protected]   即可解决问题 刚学习node.js,不知道问题的根源是什么?希望知道的大虾解析一下,拜谢.... ==========================华丽的分割线==============

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

刚学node不久,以下是对最近学习的总结,不足的地方还请见谅. node 和 mongodb安装不做为本文讲解,想了解的朋友可以通过一下链接配置环境: node 安装:http://www.infoq.com/cn/articles/nodejs-npm-install-config Win7下MongoDB安装 :http://www.mkyong.com/mongodb/how-to-install-mongodb-on-windows/ MongoDB 安装步骤总结: 1.解压目录到d盘

Node.js, Express的服务器搭建过程的问题

Node.js, Express的服务器搭建过程的问题 Express : node.js 的框架,根据2012年BYvoid的说法,是node.js官方唯一推荐的框架 怎么搭建项目? - 安装nodejs->npm->express - express 的问题: 2017年, express-generator已经被独立成命令行工具了,所以要用 npm install express-generator 这样才能用express命令 怎么启动项目? 启动服务器可以用node app.js,因

node搭建express环境

1.安装好node2.npm安装express插件.npm install express3.express 安装nodejs项目hello.express stooges4.express stooges && cd stooges( stooges是安装的文件夹名)注意每次改完app.js 要重新开命令行窗口 5.npm start(这里需要注意 express 4.x 无法以 node app.js 为启动方式,而是用指令 npm start 作为启动) 访问 http://loca

Node.js Express 框架学习

转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说明.为了学习备份,所以拷贝过来. Express框架 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 概述 运行原理 底层:http模块 对http模块的再包装 什么是中间件 use方法 Express的方法 all方法和HTTP动词方法 set方法 response

node.js express fs 获取已上传文件数据格式

{ "fieldName": "photo", "originalFilename": "1395130808991.jpg", "path": "tmpupload/25546-z8u01y.jpg", "headers": { "content-disposition": "form-data; name=\"photo\&

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

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

本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js. 其实逻辑没什么可以深谈的,主要是想说说这套代码结构.结构如下图: js的代码比较难以维护,不清楚大家对于这点是否认同,但这里笔者只说自己的感受,笔者的朋友一开始找到笔者,说玩时时彩,一直盯着玩,会因为贪心会乱来,想做个自动下注系统, 让程序自己玩.一开始,笔者也只想敷衍了事,直接拿node.js+express整了下面这套结构. 基本和express 示例代码没啥两样.但是随着需求的变