NodeJS創(chuàng)建基礎(chǔ)應(yīng)用并應(yīng)用模板引擎
本次的目的是搭建一個(gè)最基礎(chǔ)的可以實(shí)現(xiàn)功能的NodeJS服務(wù)器,能夠體現(xiàn)出NodeJS的工作流程以及開(kāi)發(fā)的基本框架。
需求:已經(jīng)安裝了nodejs以及express。
一、構(gòu)建基礎(chǔ)的NodeJS服務(wù)器(express、路由)
var express = require(‘express'); //引入express模塊 var app = express(); //調(diào)用express()函數(shù),對(duì)函數(shù)進(jìn)行初始化 app.get('/stooges/:name?', function(req, res, next){ //設(shè)置第一個(gè)路由,期待一個(gè)name被輸入 var name = req.params.name; //獲取輸入的名字,req.params switch(name?name.toLowerCase():' '){ //對(duì)名字進(jìn)行判斷 case ‘larry': case ‘curly': case ‘moe': res.send(name + 'is my favorite stooge.'); //符合條件利用res.send發(fā)送信息 break; default: next(); //next()函數(shù),在function中也有參數(shù)傳遞,它的含義是如果這個(gè)路由傳遞的參數(shù)不夠不能執(zhí)行這個(gè)路由的話(huà),next()函數(shù)表示跳轉(zhuǎn)到下一個(gè)函數(shù)繼續(xù)執(zhí)行(這里是路由) } }); app.get(‘/stooges/*?', function(){ //這里?表示最后的參數(shù)可以有也可以沒(méi)有,同上一個(gè)路由相同 res.send(‘no stooges listed'); }); app.get(‘/?', function(req,res){ //什么都沒(méi)有的時(shí)候默認(rèn)的路由 res.send(‘hello world'); }); var port = 8080; //設(shè)定并對(duì)端口進(jìn)行監(jiān)聽(tīng) app.listen(port); console.log(‘Listensing on port' + port);
二、使用Jade模板引擎,加入模板渲染
var express = require(‘express'); var app = express(); //下面三句話(huà)完成了對(duì)view的設(shè)定,包括引擎、模板路徑以及其他設(shè)定 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}); //進(jìn)行視圖的渲染,傳入模板名即可 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);
一共有三個(gè)模板文件,分別為layout.jade(布局文件),index.jade以及stooges.jade,三個(gè)模板文件代碼如下:
layout.jade
!!! 5 //代表文檔類(lèi)型是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渲染模板時(shí)傳遞進(jìn)來(lái)的參數(shù) Else p no stooges listed
通過(guò)以上的代碼,就可以利用node.js以及express搭建出一個(gè)基礎(chǔ)的node應(yīng)用了。
相關(guān)文章
node.js中的http.request.end方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.request.end方法使用說(shuō)明,本文介紹了http.request.end的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi)示例
這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi),涉及nodejs操作redis進(jìn)行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2018-02-02剖析Node.js異步編程中的回調(diào)與代碼設(shè)計(jì)模式
這篇文章主要介紹了Node.js異步編程中的回調(diào)與代碼設(shè)計(jì)模式,雖然大多數(shù)場(chǎng)合回調(diào)編寫(xiě)時(shí)的長(zhǎng)串括號(hào)不怎么好看,但Node的異步性能確實(shí)很好,需要的朋友可以參考下2016-02-02了不起的node.js讀書(shū)筆記之node的學(xué)習(xí)總結(jié)
這篇文章主要介紹了了不起的node.js讀書(shū)筆記之node的學(xué)習(xí)總結(jié),需要的朋友可以參考下2014-12-12總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
這篇文章主要介紹了總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí)),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07詳解nodejs微信公眾號(hào)開(kāi)發(fā)——2.自動(dòng)回復(fù)
這篇文章主要介紹了詳解nodejs微信公眾號(hào)開(kāi)發(fā)——2.自動(dòng)回復(fù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04npm?does?not?support?Node.js問(wèn)題的解決辦法
這篇文章主要給大家介紹了關(guān)于npm?does?not?support?Node.js問(wèn)題的解決辦法,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10