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学习笔记之网络编程
Aug 03 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
详解Nodejs内存治理
May 13 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 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
风格模板初级不完全修改教程
2006/10/09 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Django框架表单操作实例分析
2019/11/04 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
学生抄作业检讨书(2篇)
2014/10/17 职场文书
党员先进事迹材料
2014/12/19 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
致青春观后感
2015/06/09 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript