這篇文章讓我們瞭解nodejs對web開發的過程,你想知道的都在這裡,由伺服器動態產生html頁面。下面就讓我們來看這篇文章吧。
一 ,Node.js 和 PHP、 Perl、ASP、JSP 目的都是實現動動態網頁,也就是說由伺服器動動態產生 HTML 頁面。 之所以要這麼做,是因為靜態 HTML 的可擴充性非常有限,無法與使用者有效互動。(教程推薦:node.js中文參考手冊)
軟體工程分解為 個層面:模型 、視圖和控制器。
模型是對象及其資料結構的實現,通常包含資料庫操作。
視圖表示使用者介面,在網站中通常就是 HTML 的組織圖。
控制器用於處理使用者請求和資料流、複雜模型 ,將輸出傳遞給視圖。
準備工作
1、使用 http 模組
post請求:
var http = require('http');var querystring = require('querystring');var server = http.createServer(function(req, res) {var post = '';req.on('data', function(chunk) { post += chunk;});req.on('end', function() {post = querystring.parse(post); res.write(post.title); res.write(post.text); res.end();}); }).listen(3000);
所以相比php,要用nodejs用http模組直接開發網站,必須手動實現所有東西了,想學習node.js的同學可以前往topic.alibabacloud.com node.js視頻教程欄目
二、Express架構
nodejs推薦的唯一一個web開發架構
除了為http模組提供了更高層的介面外,還實現了許多功能,包括:
- 路由控制
- 模模解析支援
- 動態視圖
- 使用者會話
- CSRF保護
- 靜態檔案服務
- 錯誤控制器
- 訪問日誌
- 緩衝
- 外掛程式支援
快速開始
1.安裝Express
$ npm install -g express
2.建立工程
$ express -t ejs microblog$ cd microblog && npm install
3.啟動伺服器
$ node app.js
三、路由控制
1.工作原理
訪問http://localhost:12138 瀏覽器會向伺服器發送請求
app解析請求的路徑,調用相應的邏輯
app.js中有一行內容是app.get(‘/’, routes.index),它的作用是規定路徑為/的GET請求由routes.index函數處理
routes.index通過res.render(‘index’,{title: ‘Express’})調用視圖模板index,傳遞 title 變數
最終視圖模板產生HTML頁面, 返回給瀏覽器
瀏覽器在接收到內容以後,經過分析發現要擷取 /stylesheets/style.css,因此會再次 服 務器發 請求。
app.js中並沒有一個路由規則指 到/stylesheets/style.css,但app通過app.use(express.static(__dirname + ‘/public’))配置了靜態檔案伺服器,因此/stylesheets/style.css會定向到app.js所在目錄的子目錄中的檔案public/stylesheets/style.css, 向用戶端返回樣式內容
2.建立路由規則
開啟 app.js,在已有的路由規則 app.get(‘/’, routes.index) 後面添加一行
app.get(‘/hello’, routes.hello);改 routes/index.js, 加 hello 函數: exports.index = function(req, res) { res.render('index', { title: 'Express' });};exports.hello = function(req, res) { res.send('The time is ' + new Date().toString());};
REST 風格的路由規則
四、模版引擎
1、什麼是模板引擎
模板引擎(Template Engine)是一個從頁面模板根據一定的規則產生 HTML 的工具
模板引擎的功能是將頁面模板和要顯示的資料結合起來產生 HTML 頁面。
它 可以運行在伺服器端 可以運行在 用戶端
主流的還是由伺服器運行模板引擎
在MVC架構中,模板引擎包含在伺服器端,控制器得到使用者請求後,從模型擷取資料調用模板引擎.
模板引擎以資料和 頁面模板為輸入,產生html頁面,然後返回給控制器
由控制器交回給用戶端
模板引擎在mvc中的位置:
2、使用模板引擎 ejs
ejs標籤系統非常簡單,3中標籤:
- <% code %>: js 代碼
- <%= code %>: 顯示替換過的html特殊字元的內容
- <%- code %>: 顯示原始html內容
以上就是這篇關於nodejs對web開發的所有內容了(更多詳情到topic.alibabacloud.comnode.js中文參考手冊),有問題可以在下方留言。