nodejs初阶之express

上传人:第*** 文档编号:32691669 上传时间:2018-02-12 格式:DOC 页数:6 大小:121KB
返回 下载 相关 举报
nodejs初阶之express_第1页
第1页 / 共6页
nodejs初阶之express_第2页
第2页 / 共6页
nodejs初阶之express_第3页
第3页 / 共6页
nodejs初阶之express_第4页
第4页 / 共6页
nodejs初阶之express_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《nodejs初阶之express》由会员分享,可在线阅读,更多相关《nodejs初阶之express(6页珍藏版)》请在金锄头文库上搜索。

1、 Node 和 NPM 的安装够便捷了,不细说.有几点基础顺手提一下:1. 安装命令中的 “-g” 表示全局(global)2. express 的版本不是通常的 “-v” 来查看,而是 “-V”3. 安装 express 项目的命令如下express -e nodejs-product-e, -ejs add ejs engine support -J, -jshtml add jshtml engine support (defaults to jade)PS:模板引擎之类暂时不必 care,不过俺当初学习搭建 Node+express时用的是 ejs,所以也就顺手一直用着了Node 的小

2、基友 supervisor 每次修改代码后会自动重启。懒程序员就指望这种省事省力的工具活着了:)安装:npm install -g supervisor执行:supervisor app.js另一个小基友 forever虚拟机一关 node 服务就关了,不过 forever 可以让 node 服务不停止,介绍如下,安装和执行不细说啦,我懒:forever 是一个简单的命令式 nodejs 的守护进程,能够启动,停止,重启App 应用。forever 完全基于命令行操作,在 forever 进程之下,创建 node 的子进程,通过 monitor 监控 node 子进程的运行情况,一旦文件更新,

3、或者进程挂掉,forever 会自动重启 node 服务器,确保应用正常运行。express 项目目录 如上图就是一个 express 项目结构,简单过一下: app.js: 项目入口,反正 express 爱叫 app.js 没辙,你可以改成index.js 或者 main.js 都成。相当于 php 项目中的 index.php、index.html node_modules: 存放项目的依赖库 package.json: 项目依赖配置及开发者信息(这个要说就说多了,还是看文档好,俺就不误人子弟了。下期看看抽个小段单说 Node 模块) public: 静态文件如 css,js,img (

4、PS:俺其实习惯叫 static) routes: 路由文件(学习的重要攻克对象。尼玛业务好不好,路由是关键) Views: 页面文件(Ejs 或者 jade 的模板,默认是 jade,俺这用 Ejs,在初阶练手最重要,所以都可以试试)打开 View 文件发现 index.ejs 比较不习惯,所以对 app.js 进行小改动:1. “app.set(view engine, ejs);” 变成 “app.engine(.html, ejs._express);app.set(view engine, html);”2. 上一行出现的 ejs 变量需要 require ejs 模块,增加代码“v

5、ar ejs = require(ejs);”最终的 app.js 如下: 代码小解: 因为针对的是初阶入门,俺们还是继续过一下 express 的使用与 Node 的方法哈:require() 用于在当前模块中加载和使用其他模块;此方法是模块的基础,使用中大概有路径的概念就行。PS:JS 文件可以去掉.js后缀 exports 表示模块的导出对象,用于导出模块的属性和公共方法。在项目routes 文件夹下有 index.js 和 users.js(路由有细说),都使用到 exports对象导出对象,如 33 行的 routes.index 和 34 行的 user.list;PS:一个模块的

6、代码只会在模块第一次被使用时执行,不会因 require 多次而被初始化多次。express() 表示创建 express 应用程序。简单几行代码其实就可以创建一个应用,如下:var express = require(express); var app = express(); app.get(/, function(req, res) res.send(hello world); console.log(hello world);); app.listen(8808);app.listen() 就是在给定的主机和端口上监听请求,这个和 node 中http 模块的 http.createS

7、erver(function().).listen()效果一致;app.set(name, value)和 app.get(name)就是你想的那样,set()为设置 name 的值设为 value,get()为获取设置项 name 的值。如俺 app.js 的图片16 行中的一句“app.set(port, process.env.PORT | 3000)”就是设置项目的 port,在下面使用 http.createServer 时就可以使用 app.get(port)来获取,只是俺偷懒没用 来着 ;了解 app.engine()方法之前先看看 express 应用的安装命令:“expres

8、s -e nodejs-product”,其中的 -e 和 -J 我们一开始已经提到,表示 ejs 和jade 模板。如果想把模板后缀改成“.html”时就会用到 app.engine 方法,来重新设置模板文件的扩展名,比如想用 ejs 模板引擎来处理“.html”后缀的文件:app.engine(.html, require(ejs)._express);app.engine(ext, callback) 注册模板引擎的 callback 用来处理 ext 扩展名的文件。PS:_express 不用去 care,其实就是 ejs 模块的一个公共属性,表示要渲染的文件扩展名。app.use(p

9、ath, function) 使用中间件 function,可选参数 path 默认为/。使用 app.use() “定义的”中间件的顺序非常重要,它们将会顺序执行,use 的先后顺序决定了中间件的优先级(经常有搞错顺序的时候);最后介绍个很有用的 express API:app.render(view, options, callback) 渲染 view, callback 用来处理返回的渲染后的字符串。 路由实战: 路径代码应该是项目中最本机的一部分了。express 中创建一个或者一套新的 handle 非常简单,先看看 express 现有的,一会儿我们创建俩个实际的规则。变量 ro

10、utes 和 user 都是刚才 require 的模块,他们各自 exports 了index 方法和 list 方法;其中 Response.render()表示渲染 view,同时传进对应的数据,Response.send()为发送一个响应;在设置路由时 index 和 list 方法作为回调函数最终执行。流程大概了解啦,俺们也就实际搞一把,最 easy 的一种方式,简单俩步:1. 第一种方式就是在当前的 routes/index.js 或者 routes/test.js 中加几行代码如下2. exports.test = function(req, res)3. res.send(te

11、st welcome.);4. 在 app.js文件设置路由那块加上 app.get(/test, routes.test);第二种方式就是多了两步,先新建一个模块如 test.js 文件,输出然后exports 对应的方法;在 app.js 中 require 这个模块,再加一行设置路由即完成了。快速炫起来,集成 Bootstrap: JS 工程师使用 Nodejs 上手还是以快速搭建网站为主,所以才会介绍Express,那么为了让网站更快的体面起来,集成使用 Bootstrap 就是上佳选择,非常喜欢其响应式布局和整体系的脚手架。PS:因为 Bootstrap 的 JS 插件都依赖 jQe

12、ury,所以 jQuery 也一并引入了。前文已经说到了,静态文件都放在 public 文件夹中,切文件夹内已经帮我们把类目都分好了,images、 javascripts、 stylesheets。分别引入 bootstrap.min.css 文件至 stylesheets 目录下;jquery-1.x.x.min.js 和 bootstrap.min.js 放到 javascripts 文件夹下。然后俺们修改 view/index.html 把文件引入使用即可,下面放出俺在bootstrap demo 的基础改的 index.html,大家随意拿去使用和修改。View Code 如果样式有问题请检查下 bootstrap的路径是否正确引入。启动项目之后觉得 高大上 很简单,有木有!FAQ&总结: 俺们的 express 项目暂时,且 express 也并没有涉及到任何数据库,这个事情需要第三方 node 模块,比如 mysql 或者 MongoDB,后续俺会有一章单独介绍这块。express 也不是 Node 中 web 框架的唯一选择,不过由于其文档较全,所以才以其为示例为大家介绍,其原理和实现其实细化之后并不复杂,也希望更多的 JS 工程师折腾出自己的 Web 框架。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号