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 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
python实现批量转换图片为黑白
2020/06/16 Python
python3实现飞机大战
2020/11/29 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
竞选部门副经理的自荐书范文
2014/02/11 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
个人工作保证书
2015/02/28 职场文书
汽车销售员工作总结
2015/08/12 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
python语言中pandas字符串分割str.split()函数
2022/08/05 Python
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis