1. 程式人生 > >搭建基於node Express框架執行環境,並使用html引擎

搭建基於node Express框架執行環境,並使用html引擎

  • 安裝express generator生成器
  • 通過生成器自動建立專案
  • 配置分析

第一步:安裝

npm i -g [email protected]

查詢使用安裝成功,一定要輸入express --version,輸入express -v是不行的

express --version

第二步:通過express server命令快速生成專案

express server

預設生產的專案目錄如下:

bin 就是可執行檔案; 後期我們通過node www 就可以啟動這個服務

public 就是一些靜態資源

routes 路由,這個路由就是我們瀏覽器訪問的地址

views 檢視,express 官方推薦使用jade語法

app.js 是入口檔案

package.json 專案依賴

app.js檔案釋義

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

/** 載入index路由模組 */
var index = require('./routes/index');
/** 載入user路由模組 */
var users = require('./routes/users');

var app = express();

// view engine setup
/** 設定訪問的目錄 設定views頁面在哪放著 */
app.set('views', path.join(__dirname, 'views'));
/** 設定引擎是jade引擎 */
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
/** 安裝第三方外掛 */
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
/** 設定靜態檔案目錄 path.join方法就是把兩個變數連線要一塊 __dirnam就是獲取當前目錄 */
app.use(express.static(path.join(__dirname, 'public')));
/** 表示當我們訪問/的時候就去載入index的路由 */
app.use('/', index);
/** 當訪問/user的時候,就去訪問users的路由 */
app.use('/users', users);
/** 這通過不同的模組和訪問地址來加以區分, 這樣的化業務模組會做的更加細分 */

// catch 404 and forward to error handler
/** 全域性對404的攔截 */
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err); // 如果next拿不到引數它就會用err這個引數,如果拿到的話它就不會用
});

// error handler
/** 對error的處理 */
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error'); // 一旦報錯以後就會渲染這個error的頁面
});

module.exports = app;

cd server進入server目錄

執行 node bin/www

說明我們的頁面已經訪問到了,上面我們說了,如果我們訪問的是/就會預設訪問index

這時因為routes/index.js路由有個/

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

這時它會去render index頁面,也就是views下的index.jade,這時不用再去設定views資料夾路徑了,因為app.js裡面已經設定過了

app.set('views',path.jpin(__dirname, 'views'));  所以在routes/index.js路由裡面直接runder('index')就可以找到index.jade了,它傳的變數是Express,所以index.jade裡面拿到的是Express

extends layout

block content
  h1= title
  p Welcome to #{title}

————————————————————————————————————————————————————————

如果大家不想使用jade語法,也可以使用html

安裝 ejs

npm i ejs --save

在app.js中引入ejs

var ejs = require('ejs');

並設定

app.engine('.html',ejs.__express)

並且將app.js中的app.set('view engine', 'jade');模板引擎改為app.set('view engine', 'html');模板引擎

在views下建一個index.html頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Title</title>
</head>
<body>
    <h2>
        hello,Express is very Good!
    </h2>
</body>
</html>

執行 node server/bin/www

————————————————————————————————————————————————————————