express 腳手架生成

express 是基于 node.js 的 web 開發(fā)框架。

官方網(wǎng)址:https://www.expressjs.com.cn/

express 腳手架生成

使用 express-generetor 安裝。

安裝 Express 應(yīng)用程序生成器:

npm install -g express-generator

使用 express -h 查看所有命令:

$ express -h

  Usage: express [options] [dir]

  Options:

    -h, --help          輸出使用方法
        --version       輸出版本號
    -e, --ejs           添加對 ejs 模板引擎的支持
        --hbs           添加對 handlebars 模板引擎的支持
        --pug           添加對 pug 模板引擎的支持
    -H, --hogan         添加對 hogan.js 模板引擎的支持
        --no-view       創(chuàng)建不帶視圖引擎的項(xiàng)目
    -v, --view <engine> 添加對視圖引擎(view) <engine> 的支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默認(rèn)是 jade 模板引擎)
    -c, --css <engine>  添加樣式表引擎 <engine> 的支持 (less|stylus|compass|sass) (默認(rèn)是普通的 css 文件)
        --git           添加 .gitignore
    -f, --force         強(qiáng)制在非空目錄下創(chuàng)建

生成腳手架:

在當(dāng)前目錄 myapp 下生成腳手架:

express --view=ejs
  • 添加的是 ejs 模板引擎。

安裝所有依賴包

$ npm install

運(yùn)行

直接運(yùn)行 bin 文件夾下的 www 文件就可以了:

node ./bin/www

或者使用如下命令:

npm start

然后在瀏覽器中打開 http://localhost:3000/ 網(wǎng)址就可以看到這個應(yīng)用了。

通過生成器創(chuàng)建的應(yīng)用一般都有如下目錄結(jié)構(gòu):

.
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.pug
    ├── index.pug
    └── layout.pug
  • bin:啟動目錄,里面包含了一個啟動文件 www 默認(rèn)監(jiān)聽端口是 3000;
  • public:存放靜態(tài)資源;
  • routes:路由操作;
  • views:存放 ejs 模板引擎;
  • app.js:主文件;
  • package.json:項(xiàng)目描述文件;

app.js 文件

var createError = require('http-errors');    //http 錯誤處理
var express = require('express');    // express
var path = require('path');     
var cookieParser = require('cookie-parser');
var logger = require('morgan');  //輸出日志

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
// 視圖設(shè)置
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

//中間件
app.use(logger('dev'));  //開發(fā)環(huán)境下輸出日志
app.use(express.json());  //json 解析
app.use(express.urlencoded({ extended: false }));  //解析 body 中數(shù)據(jù)
app.use(cookieParser());   //cookie 解析
app.use(express.static(path.join(__dirname, 'public')));  //處理靜態(tài)文件,首先判斷請求的路徑是否存在于靜態(tài)文件中,如果存在,則將其取出渲染,否則再繼續(xù)走下面的路由。

//路由中間件
//請求路徑不在靜態(tài)文件中,進(jìn)入到這里的路由
app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
// 404 中間件
// 如果請求路徑在靜態(tài)頁面、路由中都沒有找到,則報(bào) 404 錯誤。
app.use(function(req, res, next) {

  //也可以在這里自己進(jìn)行 404 頁面渲染
  // res.render('404.ejs')

  next(createError(404));  //創(chuàng)建 404 報(bào)錯,來自于 var createError = require('http-errors');
});

// error handler
// 處理錯誤中間件
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');
});

module.exports = app;

參考

https://www.expressjs.com.cn/starter/generator.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容