【Web开发】Mean web开发 01-Express实现MVC模式开发

简介

Mean是JavaScript的全栈开发框架。更多介绍

用Express实现MVC模式开发是Mean Web全栈开发中的一部分。

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。Express官网

两种文件夹结构

水平文件夹结构:

按照文件的功能来分类。整个应用的分类都放在一个按照MVC文件夹结构组合的目录之中。例如:

app文件夹用于保存Express应用的逻辑部分相关代码,包含:

controllers文件夹:存放Express应用的控制器文件

  • models文件夹:存放应用模型
  • routes文件夹:存放路由中间件文件
  • views文件夹:存放应用视图文件

config文件夹用于存放Express配置文件。例如:

env文件夹:存放Express应用环境配置文件(测试、开发环境的切换等等)

config.js文件:用于Express应用配置

express.js文件:用于Express应用初始化

public文件夹用户保存浏览器端的静态文件,再次按照MVC模式分为:

  • config文件夹:用于存储AngularJS应用的配置文件
  • controllers文件夹,用户存储AngularJS应用的控制文件
  • css文件夹:存放CSS样式
  • directives文件夹:存放AngularJS应用的指令文件
  • filters文件夹:存放AngularJS应用的过滤器文件
  • img文件夹:存放图片
  • views文件夹:存放AngularJS应用的视图文件
  • application.js文件:用于AngularJS的初始化

package.json文件:存有用于管理应用依赖的元数据

server.js文件:是Node程序的主文件,以模块的方式加载express.js引导Express应用的启动

垂直文件夹结构:

按照文件所实现的功能进行文件和文件夹管理,每个功能都有各自的MVC模式组织目录结构,比较适合大型项目。比如:

server文件夹用于存放服务器逻辑,其内部按照MVC可分为:

controllers、models、routes、views、config(evn、feature.server.config.js)文件夹

client文件夹用于存放客户端文件,按照MVC模式可分为:

config、controllers、css、directives、filters、img、views、feature.client.module.js文件和文件夹等

以水平文件夹结构为例

1.首先创建如下目录:

2.package.json代码内容如下,暂时不用的dependencies可以不用写上去。

{
  "name": "websiteframe03",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "body-parser": "~1.16.0",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.0",
    "ejs": "~2.5.5",
    "express": "~4.14.1",   "serve-favicon": "~2.3.2"
  }
}

3.在app/controllers文件夹里面创建一个名为index_server_control.js的文件,注意命名方式,因为项目中前端AngularJS也会涉及到MVC模式,所以尽量将前端和后端的MVC文件命名方式区分开来。

控制器:index_server_control.js文件里面代码如下:

/**
 * Created by Goss on 2017/6/6.
 * 控制器:拼数据给视图,渲染应用视图
 */
exports.render=function(req,res){
    console.log(‘start index_server_control_render‘);

    //res.send(‘Hello world‘);
    res.render(‘index‘,{title:‘Hello world title‘});
}

4.两种路由方式:

1.app.route(path).VERB(callback)

2.app.VERB(path,callback)

(VERB要替换成小写的http方法名,比如get、post)

创建路由文件index_server_routes.js,然后加入如下代码:

/**
 * Created by Goss on 2017/6/6.
 * 中间件:业务逻辑
 */
var index=require(‘../controllers/index_server_control.js‘);

function index_server_routes(app){
    console.log(‘start index_server_routes‘);
    app.get(‘/‘,index.render);
    return app;
}

module.exports=index_server_routes;

5.接下来创建express_config.js文件来创建Express应用对象,分成两步:

  • a.创建Express应用实例
  • b.调用前面创建的路由文件,以函数调用的方式传入应用实例

路由文件中的函数会为应用实例调用控制器的render()方法来创建新的路由配置,最后返回处理好的应用实例,代码如下:

/**
 * Created by Goss on 2017/6/6.
 * 配置Express应用,所有与Express应用相关的配置也需要添加到这个文件中
 */
var express=require(‘express‘);
var index_server_routes=require(‘../app/routes/index_server_routes.js‘);

function express_config(){
    console.log(‘start express_config‘);
    var app=express();

    app.set(‘views‘,‘./app/views‘);  //设置视图文件存储目录
    app.set(‘view engine‘,‘ejs‘);   //设置EJS作为Express应用的模板引擎

    new index_server_routes(app);

    app.use(express.static(‘./public‘));    //指定静态文件所在路径,要放在路由中间件之下,即先执行路由逻辑
    return app;
}

module.exports=express_config;

6.最后在根目录的server.js文件中写入主程序代码,通过包含Express配置模块,获取Express应用对象实例,并监听8080端口,代码如下:

var express_config=require(‘./config/express_config.js‘);
var app=new express_config();

app.listen(8080);

console.log(‘server running at http://localhost:8080‘);

module.exports = app;

7.在views文件夹中加入EJS视图渲染文件,并在express_config.js文件中加入app.set对引擎进行设置,index.ejs代码如下:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
  <img src="/images/timg.jpg" alt="img">
  </body>
</html>

8.静态文件路径的配置,即在express_config.js里面加入静态文件路径:

app.use(express.static(‘./public‘));    //指定静态文件所在路径,要放在路由中间件之下,即先执行路由逻辑

最后运行:node server运行服务端,浏览器中打开:http://localhost:8080

下篇加入:MongoDB

时间: 2024-10-17 13:52:43

【Web开发】Mean web开发 01-Express实现MVC模式开发的相关文章

MVC模式开发图书商城项目分析

MVC模式开发图书商城项目分析 1. 功能分析 1.用户注册 2.用户登录 3.添加商品(CURD) 4.商品查看-- 列表查询 5.商品详情页面 6.将商品添加购物车 7.查看购物车 8.修改购物车 9.生成订单 10.订单查看(取消) 11.在线支付 12.下载销售榜单 游客(未登录): 注册.登陆.商品查看 商城注册用户 : 商品查看.添加商品到购物车.购物车管理.生成订单.订单管理.在线支付 管理员 : 添加商品.商品管理.查看订单 .榜单查看(导出) 2. 系统设计 1技术选型 (系统

使用mvc模式开发网站

看了韩顺平的j2ee的视频后,吧里面教的做了出来,感觉好极了,新手上路!!! 这个肯定不是原创,但是也不是转载,那我就姑且把它作为翻译吧,给其他看视频学习但是没有代码的同学一点福利吧 首先是login.jsp的登陆界面代码. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <% String path = request.getConte

使用MVC模式开发程序,完成数据的模糊查询【转】

编写程序:使用MVC模式开发程序,完成数据的模糊查询. 要求: (1)index.jsp用于输入要查询的数据. (2)result.jsp:用于显示结果. (3)queryServlet:用于验证数据.实例化JavaBean.调用连接数据库.控制页面跳转 (4)queryDAO:用于连接数据库及进行数据库的操作如:查询.删除.更改等 (5)Student:JavaBean用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等 以上几个部分共同构成了MVC模式,JSP为MVC模式

分层模式开发+MVC模式开发--韩顺平雇员数据库管理

1.分层模式 在使用分层设计模式编写代码之前,我们更多的是采用面向过程然后眉毛胡子一把抓,在一两个程序代码里写完所有的功能,这样只适合于小型个人项目.因为不利于阅读和修改,只有编程的个人比较熟悉程序的结构.这不利于程序的扩展性和协同开发.所以,我们引入一个固定的模式来进行编程,使得所有代码结构清晰明确,而且易于扩展延伸. 此处介绍的一种模式是分层模式.把程序分成几个层次:界面层.业务逻辑层.数据层. 界面层:主要功能就是实现界面的显示.比如要在登陆页面显示输入框之类,就需要login.php中放

.net使用mvc模式开发web应用 模型与视图间的数据处理

http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文来自于 主要讲到尽可能使用强类型作为action与view间的数据传递介质 不使用viewdata 为每一个视图建立一个数据传递Molde 缘由: 1.使用ViewData的坏处是必须使用字符串作为键进行访问.字符串是什么?是常量.分散在各处的常量是维护性的大敌,而使用ViewData则几乎无可避免

Extjs MVC模式开发,循序渐进,Helloworld

MVC模式案例(一) 即将实现网页的布局有三部分组成:顶部标题.左侧菜单和右侧主题内容显示.这里我们对案例的布局有个初步印象,方便今后我们的进一步学习. 了解了项目的最终效果,下面来看一下该案例最终的文件结构: 文件结构可以看出,在整个项目中,app文件夹是我们的主要工作目录,其中包含:controller(控制器).model(数据模型).store(数据集).view(视图).另外还有server文件夹,其主要目的是代替后台服务器为项目提供数据.这些内容我们将在今后的文章中逐步讲解,今天我们

java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web开发的知识点串联起来,学会综合运用. 对于初学者而言,代码示例是最好的教材,可能一遍看不懂,就多看几遍,相关知识点,如果本教程介绍的清楚的,请自行百度相关知识,或请教师友. 本项目采用的技术栈为: 0.简单html页面,无css,重在揭示servlet和数据库访问技巧 1.servlet 2.jsp

华人果园模式开发系统

华人果园模式开发系统,找凌凌团队188-2609-8823(可微可电)华人果园系统模式开发,华人果园系统APP定制开发,果园种植APP开发,农场养殖系统APP开发. 互联网不是靠免费生存的,免费只是降低门槛.吸引用户.提升用户感受的方法之一,千万别把免费当成互联网思维的核心. 运用互联网思维,绝对不是做做微博营销.微信互动,而是要把这种思维放到产品中去,产品才是企业思维.服务.理念的载体.企业必须理解 非华人果园模式开发系统的工作人员!非华人果园模式开发系统的工作人员!非华人果园模式开发系统的工

MVC模式在游戏开发的应用

原地址: http://www.cocoachina.com/gamedev/2012/1129/5212.html MVC是三个单词的缩写,分别为:模型(Model).视图(View)和控制Controller).MVC是一个设计模式,它强制性地使应用程序的输入.处理和输出分开,将应用程序分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务,关系如图所示: 模型是数据层,视图是表现层,控制器是逻辑层,也对应于程序运行中的数据输入,数据处理,数据输出基本三步骤.事实上,MVC模式开发也适