NodeJS创建基础应用并应用模板引擎


Posted in NodeJs onApril 12, 2016

本次的目的是搭建一个最基础的可以实现功能的NodeJS服务器,能够体现出NodeJS的工作流程以及开发的基本框架。
需求:已经安装了nodejs以及express。
一、构建基础的NodeJS服务器(express、路由)

var express = require(‘express'); //引入express模块 
var app = express(); //调用express()函数,对函数进行初始化 
app.get('/stooges/:name?', function(req, res, next){ //设置第一个路由,期待一个name被输入 
 var name = req.params.name; //获取输入的名字,req.params 
 switch(name?name.toLowerCase():' '){ //对名字进行判断 
 case ‘larry': 
 case ‘curly': 
 case ‘moe': 
  res.send(name + 'is my favorite stooge.'); //符合条件利用res.send发送信息 
 break; 
 default:  
  next(); //next()函数,在function中也有参数传递,它的含义是如果这个路由传递的参数不够不能执行这个路由的话,next()函数表示跳转到下一个函数继续执行(这里是路由) 
} 
}); 
app.get(‘/stooges/*?', function(){ //这里?表示最后的参数可以有也可以没有,同上一个路由相同 
 res.send(‘no stooges listed'); 
}); 
app.get(‘/?', function(req,res){ //什么都没有的时候默认的路由 
 res.send(‘hello world'); 
}); 
var port = 8080; //设定并对端口进行监听 
app.listen(port); 
console.log(‘Listensing on port' + port);

二、使用Jade模板引擎,加入模板渲染

var express = require(‘express'); 
var app = express(); 
//下面三句话完成了对view的设定,包括引擎、模板路径以及其他设定 
app.set(‘view engine', ‘jade'); 
app.set(‘view options', {layout:true}); 
app.set(‘views', __dirname + ‘/views'); 
app.get('/stooges/:name?', function(req, res, next){ 
 var name = req.params.name; 
 switch(name?name.toLowerCase():' '){ 
 case ‘larry': 
 case ‘curly': 
 case ‘moe': 
  res.render(‘stooges', {stooge: name}); //进行视图的渲染,传入模板名即可 
 break; 
 default:  
  next(); 
} 
}); 
app.get(‘/stooges/*?', function(req, res){ 
 res.render(‘stooges', {stooges:null}); 
}); 
app.get(‘/?', function(req, res){ 
 res.render(‘index'); 
}); 
var port = 8080; 
app.listen(port); 
console.log(‘Listensing on port' + port);

一共有三个模板文件,分别为layout.jade(布局文件),index.jade以及stooges.jade,三个模板文件代码如下:
layout.jade

!!! 5 //代表文档类型是HTML5
html(lang=”en”)
head
 title My Web Site
 block scripts
block content

index.jade

entends layout
block content
hi hello world

stooges.jade

extends layout
block content
if(stooge)
 p #{stooge} is my favorite stooge. //这里的#{stooge}获取了js渲染模板时传递进来的参数
Else
 p no stooges listed

通过以上的代码,就可以利用node.js以及express搭建出一个基础的node应用了。

NodeJs 相关文章推荐
我的NodeJs学习小结(一)
Jul 06 NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
监控Nodejs的性能实例代码
Jul 02 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
nodejs制作小爬虫功能示例
Feb 24 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 #NodeJs
Nodejs如何搭建Web服务器
Mar 28 #NodeJs
Nodejs中的this详解
Mar 26 #NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 #NodeJs
Nodejs如何复制文件
Mar 09 #NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 #NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 #NodeJs
You might like
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
一文了解Vue中的nextTick
2019/05/06 Javascript
python 图片验证码代码分享
2012/07/04 Python
python sys模块sys.path使用方法示例
2013/12/04 Python
RC4文件加密的python实现方法
2015/06/30 Python
Python找出9个连续的空闲端口
2016/02/01 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python单元测试实例详解
2018/05/25 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Django Form常用功能及代码示例
2020/10/13 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
什么是继承
2013/12/07 面试题
八一演出活动方案
2014/02/03 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
感恩教育月活动总结
2014/07/07 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2014年环保局工作总结
2014/12/11 职场文书
三年级学生评语大全
2014/12/26 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python