美文网首页
express 服务框架(二)框架结构及配置文件解析

express 服务框架(二)框架结构及配置文件解析

作者: hunter97 | 来源:发表于2018-11-29 19:01 被阅读0次

一、框架目录结构
├── bin ------------------------------------- 存放可执行文件
│   ├── www ------------------------------ 应用的主入口
├── public ------------------------------------- 静态文件目录
├── views ------------------------------------- 视图文件目录
├── routes ------------------------------------- 路由文件目录
│   ├── index.js ------------------------------ 路由入口文件
├── node_modules ---------------------------- 存放依赖的目录
├── app.js ---------------------------- 启动文件即入口文件
├── package.json ---------------------------- node配置文件,存储着工程的信息及模块依赖

其中 /bin/www 是应用的主入口。应用的真正入口是app.js文件,所以www文件先把app.js文件引进来,其余的内容主要就是创建了一个node HTTP server。

二、app.js 文件
//引入第三方库
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const  logger = require('morgan');

//引入路由文件
const indexRouter = require('./routes/index');
const  usersRouter = require('./routes/users');

//创建express框架
const app = express();

//设置模板
// views 设置了模板的位置
app.set('views', path.join(__dirname, 'views'));
//设置了要使用的模板引擎
app.set('view engine', 'ejs');

//使用上面引入的第三方库
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
//设置图片、js、css等静态资源目录
app.use(express.static(path.join(__dirname, 'public')));
//设置浏览器标签上的logo图标,可以不做
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));

//设置路由路径与引入的文件关联
app.use('/', indexRouter);
app.use('/users', usersRouter);

//处理错误的http请求
//捕获404错误,并转发到错误处理器
app.use(function(req, res, next) {
  next(createError(404));
});
//错误处理器
app.use(function(err, req, res, next) {
  //生产环境下的错误处理器,不会将错误信息泄露给用户
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  //开发环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中
  res.status(err.status || 500);
  res.render('error');
});

//导出app实例供其他模块调用
module.exports = app;
三、bin/www 文件

/bin目录下的www 是应用的主入口,这里主要介绍上半部分。

/**
 * node 可执行文件
 */
#!/usr/bin/env node 

/**
 * 引入app.js中导出的app实例
 */
var app = require('../app');
/**
 * 引入debug模块,打印调试日志
 */
var debug = require('debug')('demo:server');
/**
 * 引入http模块
 */
var http = require('http');

/**
 * 设置端口号并启动工程并监听3000端口
 */
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
四、routes文件夹

在之前的app.js中,我们曾引入过一些路由文件。这里我们以其中的index.js文件为例。

//引入express框架
var express = require('express');
//生成路由实例
var router = express.Router();

//捕获访问`/`根目录的的GET请求
router.get('/', function(req, res, next) {
  //调用res.render渲染views/index.ejs模版并显示到浏览器
  res.render('index', { title: 'Express' });
});

//导出路由
module.exports = router;
五、views文件夹

视图文件夹,放置视图文件。

参考文献:
Express Generator 生成 Express应用的目录结构express框架文件解析
前行的路,不怕万人阻挡,只怕自己投降;人生的帆,不怕狂风巨浪,只怕自己没胆量!有路,就大胆去走;有梦,就大胆飞翔。

相关文章

  • express 服务框架(二)框架结构及配置文件解析

    一、框架目录结构 其中 /bin/www 是应用的主入口。应用的真正入口是app.js文件,所以www文件先把ap...

  • WebKit 框架解析

    WebKit框架解析(一)—— 基本概览及WKWebView(一)WebKit框架解析(二)—— 基本概览及WKW...

  • Express

    Express框架 课程介绍 Ø Express介绍(了解) Ø Express安装及使用(掌握) Ø Expre...

  • express入门总结

    1.Express框架 1.1 express是什么? 创建http服务器特别麻烦,express框架解决了这个的...

  • Hadoop源码解析之Configuration简介

    对配置文件的配置及解析是每个框架的基本且必不可少的部分,本文主要对Hadoop中的配置文件的解析类Configur...

  • 路由框架ARouter使用及源码解析(一)

    系列文章: 路由框架ARouter使用及源码解析(一)路由框架ARouter使用及源码解析(二) 一、什么是路由?...

  • Express 框架

    一、Express框架简介及体验 1.1 Express框架简介 Express是一个基于Node.js平台的应用...

  • 十:Express框架基本使用

    express框架 安装 npm install express --save 开启服务 其中 Request参数...

  • Koa2核心原理

    解析Koa2核心原理(手写KOA框架并解析) 前言:相对于express框架,koa框架只是提供了async/aw...

  • 前后端交互-Express框架

    一. Express框架简介及初体验 1 - Express框架是什么 Express是一个基于Node平台的we...

网友评论

      本文标题:express 服务框架(二)框架结构及配置文件解析

      本文链接:https://www.haomeiwen.com/subject/craaqqtx.html