知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
使用Nodejs進(jìn)行web開(kāi)發(fā)
發(fā)表時(shí)間:2017-8-5
發(fā)布人:葵宇科技
瀏覽次數(shù):37
Node.js 和 PHP、 Perl、ASP、JSP 一 ,目的都是實(shí)現(xiàn)動(dòng)動(dòng)態(tài)網(wǎng)頁(yè),也就是說(shuō)由服務(wù)器動(dòng)動(dòng)態(tài)生成 HTML 頁(yè)面。
之所以要這么做,是因?yàn)殪o態(tài) HTML 的可擴(kuò)展性非常有限,無(wú)法與用戶有效交互。
軟件工程分解為 個(gè)層面:模型 、視圖和控制器。
1)模型是對(duì)象及其數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),通常包含數(shù)據(jù)庫(kù)操作。
2)視圖表示用戶界面,在網(wǎng)站中通常就是 HTML 的組織結(jié)構(gòu)。
3)控制器用于處理用戶請(qǐng)求和數(shù)據(jù)流、復(fù)雜模型 ,將輸出傳遞給視圖。
準(zhǔn)備工作
1、使用 http 模塊
post請(qǐng)求:
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模塊直接開(kāi)發(fā)網(wǎng)站,必須手動(dòng)實(shí)現(xiàn)所有東西了
2、Express框架
nodejs推薦的唯一一個(gè)web開(kāi)發(fā)框架
除了為http模塊提供了更高層的接口外,還實(shí)現(xiàn)了許多功能,包括:
- 路由控制
- 模模解析支持
- 動(dòng)態(tài)視圖
- 用戶會(huì)話
- CSRF保護(hù)
- 靜態(tài)文件服務(wù)
- 錯(cuò)誤控制器
- 訪問(wèn)日志
- 緩存
- 插件支持
快速開(kāi)始
1、安裝Express
$ npm install -g express
2、建立工程
$ express -t ejs microblog
$ cd microblog && npm install
3、啟動(dòng)服務(wù)器
$ node app.js
在瀏覽器中打開(kāi):http://localhost:3000
三、路由控制
1、工作原理
- 訪問(wèn)http://localhost:3000 瀏覽器會(huì)向服務(wù)器發(fā)送請(qǐng)求
- app解析請(qǐng)求的路徑,調(diào)用相應(yīng)的邏輯
- app.js 中有一行內(nèi)容是 app.get(‘/’, routes.index),它的作用是規(guī)定路徑為 / 的 GET 請(qǐng)求由 routes.index 函數(shù)處理
- routes.index 通 過(guò) res.render(‘index’, { title: ‘Express’ }) 調(diào)用視圖模板 index,傳遞 title 變量
- 最終視圖模板生成 HTML 頁(yè)面, 返回給瀏覽器
- 瀏覽器在接收到內(nèi)容以后,經(jīng)過(guò)分析發(fā)現(xiàn)要獲取 /stylesheets/style.css,因此會(huì)再次 服 務(wù)器發(fā) 請(qǐng)求。
- app.js 中并沒(méi)有一個(gè)路由規(guī)則指 到 /stylesheets/style.css,但 app 通過(guò) app.use(express.static(__dirname + ‘/public’)) 配置了靜態(tài)文件服務(wù)器,因此 /stylesheets/style.css 會(huì)定向到 app.js 所在目錄的 子目錄中的文件 public/stylesheets/style.css, 向客戶端返回樣式內(nèi)容
2、創(chuàng)建路由規(guī)則
- 打開(kāi) app.js,在已有的路由規(guī)則 app.get(‘/’, routes.index) 后面添加一行
- app.get(‘/hello’, routes.hello);
- 改 routes/index.js, 加 hello 函數(shù):
exports.index = function(req, res) {
res.render('index', { title: 'Express' });
};
exports.hello = function(req, res) {
res.send('The time is ' + new Date().toString());
};
2)REST 風(fēng)格的路由規(guī)則
四、模版引擎
1、什么是模板引擎
- 模板引擎(Template Engine)是一個(gè)從頁(yè)面模板根據(jù)一定的規(guī)則生成 HTML 的工具
- 模板引擎的功能是將頁(yè)面模板和要顯示的數(shù)據(jù)結(jié)合起來(lái)生成 HTML 頁(yè)面。
- 它 可以運(yùn)行在服務(wù)器端 可以運(yùn)行在 客戶端
- 主流的還是由服務(wù)器運(yùn)行模板引擎
在MVC架構(gòu)中,模板引擎包含在服務(wù)器端,控制器得到用戶請(qǐng)求后,從模型獲取數(shù)據(jù)調(diào)用模板引擎.
模板引擎以數(shù)據(jù)和 頁(yè)面模板為輸入,生成html頁(yè)面,然后返回給控制器
由控制器交回給客戶端
模板引擎在mvc中的位置:
2、使用模板引擎 ejs
ejs標(biāo)簽系統(tǒng)非常簡(jiǎn)單,3中標(biāo)簽:
- <% code %>: js 代碼
- <%= code %>: 顯示替換過(guò)的html特殊字符的內(nèi)容
- <%- code %>: 顯示原始html內(nèi)容
相關(guān)案例查看更多
相關(guān)閱讀
- 汽車報(bào)廢回收軟件
- 云南建設(shè)廳官方網(wǎng)站
- 小程序定制
- 海南小程序制作公司
- 出入小程序
- 網(wǎng)絡(luò)公司電話
- 云南網(wǎng)站建設(shè)首選公司
- 小程序公司
- 昆明小程序開(kāi)發(fā)聯(lián)系方式
- 分銷系統(tǒng)
- 前端開(kāi)發(fā)
- 汽車報(bào)廢軟件
- 云南網(wǎng)站建設(shè)專家
- 微分銷
- 云南小程序開(kāi)發(fā)公司推薦
- 退款
- 汽車報(bào)廢回收管理系統(tǒng)
- 云南網(wǎng)站開(kāi)發(fā)
- 報(bào)廢車回收管理系統(tǒng)
- 昆明小程序哪家好
- 日歷組件
- 霸屏推廣
- 小程序表單
- 保險(xiǎn)網(wǎng)站建設(shè)公司
- 網(wǎng)站建設(shè)優(yōu)化
- 網(wǎng)站建設(shè)需要多少錢
- 報(bào)廢車拆解系統(tǒng)
- 汽車報(bào)廢管理
- 網(wǎng)絡(luò)公司報(bào)價(jià)
- 大理網(wǎng)站建設(shè)公司