最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架。

框架的作用就是提高开发效率,快速产出结果。即使不使用框架,我们也会在开发过程中逐渐形成构成框架。

大多数的node.js项目中都会用到express.js

目录:

一、什么是express.js框架

二、express.js是怎么工作的

三、expres.js的安装

四、express.js的脚手架

五、express.js的helloworld基本应用

一、什么是express.js框架?

Express.js框架是基于node.js的http模块和connect组件的web框架。Connect组件就是中间件,以约定大于配置原则作为开发理念。

如果使用核心的node.js模块来开发web应用,会发现很多的代码冗余,例如:

1、解析http请求消息

2、解析cookie

3、管理session

4、根据http请求的方法类型和url路径做路由解析

REST API服务包含两种路由方式,1、基于http请求类型;2、基于URL

开发人员不得不做很多繁琐的工作,需要做http请求方式,url路由解析,分析请求,响应数据等等。

Express.js很好的解决这些繁琐的工作,express.js框架提供了一个类似MVC的架构,,web应用提供了一个良好的结构(MVC)(模型,视图,路由)。

二、express.js是如何工作的?

Express.js是单入口的主文件启动。我们在node命令中启动这个文件。

这个文件中,以下事情:

1、引入第三方模块,比如控制器,公共模块,辅助模块和模型。

2、配置express.js,例如模板引擎

3、连接到数据库,mongoDB,redis,mysql

4、定义中间件

5、定义路由

6、启动应用

7、模块化输出应用

三、express.js的安装

Express包有两种形式:

1、express-generator:一个提供在命令行中快速搭建全局NPM包

2、express:一个在Node.js应用中的node_modules文件夹里的本地模块包

1、express.js生成器

以全局形式安装express.js生成器,命令行输入

npm install –g express-generator@4.0.0

2、本地expres.js

通过在命令行输入

mkdir 文件夹名

新建一个文件夹,这个文件夹名就是项目文件夹。

cd 文件夹名

打开该文件夹名。通过在命令行输入

npm init

创建package.json

最后通过npm安装模块,在命令行输入

npm install express@4.1.2 –save

四、express.js脚手架

具有基本的结构后,通过稳定的脚手架快速启动是非常有必要的,这就是为啥有那么多的不同类型的脚手架。

五、helloworld的web应用

不使用生成器,高级模块,中间件来搭建express.js的应用。

步骤:

1、创建文件夹

2、npm初始化和配置packag.json

3、依赖声明

4、app.js文件

5、结合jade

6、运行应用

1、创建文件夹

node_modules文件夹:express.js和第三方模块的依赖都在这个目录下

views文件夹:jade或者其他模板引擎文件

2、npm初始化和package.json

我们不用express.js生成器,手动创建一个express.js应用,npm是什么,npm是node.js 的包管理器,创建package.json文件是必须的。

(1)可以使用在命令行输入

npm init

输入完成之后就会生成一个package.json文件。

(2)也可以创建package.json文件的方式,写入或者复制粘贴package.json并运行。

package.json文件内容

{

"name": "express",

"version": "1.0.0",

"description": ""

"main": "index.js",

"scripts": {

"start": "node index.js"

},

"dependencies":{

"express":"4.1.2",

"jade":"1.3.1",

"mongoskin":"1.4.1",

"stylus":"0.44.0"

},

"author": "",

"license": "ISC"

}

3、index.js文件

index.js文件内容

var express = require('express');

var http = require('http');
var path = require('path'); var app = express(); app.set('port', process.env.PORT || 3001);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade'); app.all('*', function(req, res) {
  res.render('index', {msg: 'Welcome to my coding life!\n欢迎来到coding世界'})
})
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

 

 

4、jade模板

5、运行

在命令行输入

node index

效果图,如下图所示

使用express.js框架一步步实现基本应用以及构建可扩展的web应用的更多相关文章

  1. node.js入门及express.js框架

    node.js介绍 javascript原本只是用来处理前端,Node使得javascript编写服务端程序成为可能.于是前端开发者也可以借此轻松进入后端开发领域.Node是基于Google的V8引擎 ...

  2. Node.js构建可扩展的Web应用1

    <Practical Node.js:Building Real-World Scalable Web Apps>[美]Azat Mardan(电子工业出版社) 安装node.js和NPM ...

  3. 《Pro Express.js》学习笔记——概述

    要学Node.js,先学Express.js. Express.js是Node.js官方推荐的基础框架. Express.js框架经过一系列的发展,已经到了4.x版本.新的版本解决了3.x之前版本的依 ...

  4. node.js Web应用框架Express.js(一)

    什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随 ...

  5. node.js框架express的安装

    node.js框架express的安装 首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录. $ mkdir myapp $ cd myapp 通 ...

  6. [转]Node.js框架对比:Express/Koa/Hapi

    本文转自:https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/no ...

  7. [译]Node.js框架对比:Express/Koa/Hapi

    本文翻译自: https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi 1.介绍 直至今日, ...

  8. Node.js 框架对比之 Express VS Koa

    背景 上图是一个典型的采用 Node.js 开发 web 应用的前后端结构,下面介绍一下 Node 服务层在其中的作用以及使用 Node.js 的一些优劣. Node 服务层作用: 请求代理 传统做法 ...

  9. nodejs 实践:express 最佳实践(八) egg.js 框架的优缺点

    nodejs 实践:express 最佳实践(八) egg.js 框架的优缺点 优点 所有的 web开发的点都考虑到了 agent 很有特色 文件夹规划到位 扩展能力优秀 缺点 最大的问题在于: 使用 ...

随机推荐

  1. Quick Cocos2dx 与 DragonBones

    照着官方的例子试验了一下DragonBone的使用,代码如下: local AnotherScene = class("AnotherScene", function() retu ...

  2. MySQL的 explain 解析

    EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 项 说明 id MySQL Query Optimizer 选定的执行计划中查询的序列号.表示查询中执行 select 子句 ...

  3. (中等) POJ 1703 Find them, Catch them,带权并查集。

    Description The police office in Tadu City decides to say ends to the chaos, as launch actions to ro ...

  4. iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输

    http://blog.csdn.net/worldzhy/article/details/49982491 将NSArray.NSDictionary转换为JSON格式进行网络传输,是经常用到的,但 ...

  5. iOS开发——UIImageView

    1.图像点击之后,全屏浏览 - (void)viewDidLoad { [super viewDidLoad]; _myImage=[[UIImageView alloc]initWithFrame: ...

  6. STM32中的位带(bit-band)操作(转)

    源:STM32中的位带(bit-band)操作 支持了位带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写.在 CM3 中,有两个区中实现了位带.其中一个是 SRAM 区的最低 1MB 范围 ...

  7. C#索引器的用法

    索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...

  8. poj 3641 ——2016——3——15

    传送门:http://poj.org/problem?id=3461 题目大意:给你两个字符串p和s,求出p在s中出现的次数. 题解:这一眼看过去就知道是KMP,作为模板来写是最好不过了.... 这道 ...

  9. 浅谈ServletContext

    ServletContext是什么? WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用.ServletConfig对象中维护了Serv ...

  10. HDU-1994-利息计算

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1994 水题 题目分析 就是两种储存方式,输出所得本金加利息 代码 #include<stdio. ...