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 相关文章推荐
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
Nodejs+express+html5 实现拖拽上传
Aug 08 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs实现用户注册功能
Apr 14 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 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
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
机关门卫的岗位职责
2014/04/29 职场文书
电视节目策划方案
2014/05/16 职场文书
求职信标题怎么写
2014/05/26 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
优秀党员先进材料
2014/12/18 职场文书
设备技术员岗位职责
2015/04/11 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python