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学习笔记之NET模块
Jan 13 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 NodeJs
nodeJs项目在阿里云的简单部署
Nov 27 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
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
Python学习笔记之常用函数及说明
2014/05/23 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python得到电脑的开机时间方法
2018/10/15 Python
Python最小二乘法矩阵
2019/01/02 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python 多个参数不为空校验方法
2019/02/14 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
超市端午节活动方案
2014/01/23 职场文书
毕业生自荐书
2014/02/03 职场文书
高一新生军训感言
2014/03/02 职场文书
工会工作个人总结
2015/03/03 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
2022年显卡天梯图(6月更新)
2022/06/17 数码科技
win sever 2022如何占用操作主机角色
2022/06/25 Servers
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL