使用nodejs進行WEB開發

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   檔案   資料   

這裡,準備從零開始用nodejs實現一個微博系統。功能包括路由控制、頁面模板、資料庫訪問、使用者註冊、登入、使用者會話等內容。

將會介紹Express架構、MVC設計模式、ejs模板引擎以及MongoDB資料庫的操作。

準備工作

 使用http模組,Express架構,

 nodejs的抽象如此之差,把不該有的細節暴露給開發人員。你可以用它做任何HTTP伺服器能做的事情,不僅僅是做一個網站,甚至實現一個HTTPProxy 伺服器都行。

Express是WEB開發架構。

實現:

為HTTP模組提供了更高層的介面,

路由控制,

模板解析支援,

動態視圖,

使用者會話,

CSRF保護,

靜態檔案服務,

錯誤控制器,

訪問日誌,

緩衝,

外掛程式支援。

多數功能只是對HTTP協議中常用操作的封裝,更多的功能需要外掛程式或者整合其他模組來完成。

快速開發

安裝Express

在項目目錄下

npm install -g express-generator

express --help

建立工程

express -t ejs microblog 由於新版本沒有-t命令

 1.如何在項目中安裝ejs模板引擎

在NodeJS指南中利用利用以下命令建立網站的基本結構:

express -t ejs microblog

運行這個命令後繼續運行

cd microblog && npm install(安裝項目的相依性屬性),

發現安裝的模板引擎是jade,而不是ejs。原因是現在的版本已經沒有-t這個命令了,改為

express -e  microblog

運行完這個命令,繼續運行cd microblog && npm install,ejs模板引擎就安裝好了

但是express3以上的版本把layout預設給取消了,所以現在在views檔案夾下並沒有產生layout.ejs。

2.安裝了ejs後,如何使用ejs的layout模板 

   安裝express-partials

    在cmd中切換到項目目錄,運行

(1)npm install express-partials或者

(2)在 package.json 裡面的 dependencies 添加 "express-partials": "*"。然後在項目目錄下運行 npm install

(3)然後在app.js 裡面引用 express-partials,引用方法:

   1.在path = require(‘path‘)後,添加引用 var partials = require(‘express-partials‘);

   2.在 app.set(‘view engine‘, ‘ejs‘)後,添加 app.use(partials());

 3.增長連接埠,

  app.listen(8100,function(){
      console.log("Server Start!");
  });

http://cnodejs.org/topic/515b009a6d38277306192e4e

啟動伺服器

工程的結構

 

 

路由控制

 

模板引擎

 

建立微博網站

 

使用者註冊和登入

 

發表微博

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.