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实用示例 缩址还原
Dec 28 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 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+jquery实时显示网站在线人数的方法
2015/01/04 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python对html代码进行escape编码的方法
2015/05/04 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
盛大二次面试题
2016/11/18 面试题
学历公证书范本
2014/04/09 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2014年工商所工作总结
2014/12/09 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
python元组打包和解包过程详解
2021/08/02 Python