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教程之环境安装及运行
Nov 21 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 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操作类
2006/11/16 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
python线程池threadpool实现篇
2018/04/27 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
运动会广播稿20字
2014/02/18 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
个人授权委托书范文
2014/09/21 职场文书
2014年工程部工作总结
2014/11/25 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
2015年纪委工作总结
2015/05/13 职场文书
飞屋环游记观后感
2015/06/08 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫