




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/web/2015/0512/405473.shtml使用Angular JS + Express JS入门搭建网站官网:Angularjs:/Express JS:http:/expressjs.jser.us/Node.JS:/最近,接到了新的任务,跟UI开发有关,用的是Angular JS,Express JS等技术。于是周末顺便学习下新技术。组里产品UI架构如下:其中前端,主要使用Angular JS框架,另外配合Bootstrap提供的很多控件以及JQuery,后台主要是Express JS搭建的Web Server,Express JS配合Nginx使用非常方便。由此在项目不忙的时候,自己于是有时间和兴趣学习一下Angular JS与Express JS。同时自己实现了一个最简单的Angular JS + Express JS的网站示例。一. Angular JSAngular JS是由谷歌员工开发,后由谷歌维护的一个项目,官网为:/。上面有详细的文档,可以下载最新的版本1.4和稳定版1.3.15。简单来讲,Angular JS是一个作用在前端的Javascript框架。它的两大特点是通过指令扩展了Html,并且通过表达式绑定数据到Html。同时提供了控制器,Filter过滤器,Factory等服务。Angular JS因为作用在前端,所以可以和任何服务器技术相结合,与Express JS就是很好的结合。Angular JS的产生为了解决静态网页操作DOM的弊端,适用于开发动态Web应用。Angular JS的原理可通过下图了解:网上入门学习的资料也很多,这里不予赘述。但介绍一下Angular JS的几个重要概念:1. 控制器Controller要动态操作网页中的数据,我们可以针对Html页面编写控制器,控制器本质是一个Javascript方法,例如我们可以针对每一个HTML页面,写一个对应的Javascript方法做控制器,来控制页面中的数据。如下:index.html Hello name 这是一个Angular JS控制编写的页面,指定Angular JS的app为myApp,注意看其中的表达式,name,name就是一个动态变量。那name的值从何而来?就是要在对应的控制器中给name赋值,从来用户访问index.html页面时可看到name真实的值。controller.js/ Declare angular JS level module wich depends on filters, and services var myControllers = angular.module(myControllers, ); / controller myControllers.controller(indexContrl, $scope, function ($scope) $ = Kevin; ); 在controller.js中,我们定义了一个indexContrl的控制器,这个控制器来给index.html中的name赋值。当然我觉得真实开发中,控制器的代码肯定会很多,建议每一个像indexContrl的控制器单独放在一个JS文件中,这样规范,好维护。那有一个问题,indexContrl如何与index.html关联起来?Angular JS怎么知道我们要用indexContrl来控制index.html?这里有两种方式,一是在index.html中直接指定, Hello name 但这种方式,对于大型网站来说,太麻烦。建议使用另外一种方式,就是用Angular JS的另一个Module ng-route,做路由控制,针对不同的路径,在同一个文件中定义好各自的控制器。如下:myAngularApp.js/ Declare angular JS level module wich depends on filters, and services var myApp = angular.module(myApp, ngRoute, myControllers); / route myApp.config($routeProvider, function($routeProvider) $routeProvider. when( /, templateUrl: index.html, controller: indexContrl ). otherwise( redirectTo: /404 ); ); 值得注意的是,一定要在myApp的moudle中引用ng-route,同时要在文件中引用angular-route.js文件,否则不起作用。这样index.html页面中的数据,会被indexContrl函数控制。这里只是一个简单的Demo,更多的功能要去看文档。2. Filter过滤器Angular JS提供过滤器功能,本质是我们定义一些通用的方法,来格式化页面上输出的数据。非常方便。建议开发时放在单独的Filter.js文件中。3. Factory服务也是让我们定义一些通用的方法,作为服务。但所有的服务都是延迟实例化,只要用到时或被依赖时才会实例化,都是单例。建议开发时放在单独的Factory.js文件中。二. Express JS在示例的前端中,我们使用Angular JS框架开发了Html页面以及对应的JS文件。但网站的后台就要用其他技术了。如果我们要用Node.js做后台,那很简单,http.createServer就可以了。但在真实的网站开发中,用Express JS会更适合。Express JS是目前最流行的基于Node.js的Web开发框架,提供各种模块,如session,cookie等,可快速搭建一个具有完整功能的网站。本质来讲,Express JS是基于Node.js内置的http模块开发而成。Express JS和Nginx反向代理服务器搭配非常方便。这里Express JS有一个重要概念是中间件middleware,可以加载使用很多Express JS或其他模块提供的模块作为中间件,它的作用是处理http请求,一个中间件处理完,可以传递给下一个中间件。可使用NPM来下载Express JS。npm install express如果要快速使用Express JS来搭建网站后台,推荐一个工具,叫express-generator,它可以帮你快速建一个Express JS项目,生成必要的文件。npm install -g express-generator但这里,我发现express generator中使用的其他模块较多,如jade做视图渲染等,稍显复杂。我还是参照,自己建立一个最简单的Express JS项目。路径如下:其中public文件夹中放置的是UI相关文件,如下:其中app.js是Express JS的起始文件,相当于main函数。app.jsvar express = require(express); var http = require(http); var path = require(path); var routes = require(./routes/index); var app = express(); app.use(express.static(path.join(_dirname, public); app.use(/, routes); http.createServer(app).listen(3000); 这里,就是使用Express JS建立一个server,注意第8行代码的作用是指定页面的文件夹,第10句的作用是关于路径/的路由信息在routes文件夹里的index文件中定义,这两句顺序不能错。var express = require(express); var router = express.Router(); /* GET home page. */ router.get(/, function(req, res, next) res.render(index, title: Express ); ); module.exports = router; 意为对于路径/的访问,去public文件夹下找index.html文件。这样通过一条命令, node app.js就可以把网站挂起来。三. 示例结果及小结最后访问网站,可看到正确的结果,网站
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 齐齐哈尔市医疗机构药品集中招标采购药品购销合同2篇
- 辽宁省普通高中联考2025-2026学年高二上学期9月月考化学试卷
- 数据治理与合规性下的隐私保护机制-洞察及研究
- 远程医疗的可及性与社会不平等问题分析-洞察及研究
- 部队交通安全培训讲话稿课件
- 湖北省襄阳市第四中学2025-2026学年高三上学期9月周考二英语试题(含答案含听力原文无音频)
- 安徽省宿州市第十一中学2024-2025学年七年级上学期第一次月考英语试题(含笔试答案无听力音频及原文)
- 部门级安全培训模板课件
- 20xx文秘个人实习报告范文
- 高效能源管理系统-洞察及研究
- 焊机房管理制度
- 2025年中国氢气压缩机行业发展概况、市场环境及投资前景研究分析报告
- 装饰装修工程检查评分表
- 2025年全国中学生数学奥林匹克竞赛(预赛)模拟卷(全国高中数学联赛一试)(含解析)
- (完整版)外国美术史
- C语言程序设计 全套课件
- 学校门卫管理制度及台账汇编
- T-ZZB 1777-2023 全浸没式高电压电极热水锅炉
- 化纤厂流程图讲解
- 桥梁监测方案
- 湖南省邵阳市邵东市2024-2025学年高二上学期1月期末联考数学试卷 含答案
评论
0/150
提交评论