Express 项目结构分析

Posted x0815

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Express 项目结构分析相关的知识,希望对你有一定的参考价值。

技术图片

1、bin:启动配置文件,在 www 里修改运行端口号
2、node_modules:存放所有的项目依赖库,就像java存放架包
3、public:用于存放静态资源文件 图片,CSS,JAVASCRIPT文件..
4、routers:路由文件相当于springmvc中的Controller,ssh中的action
5、views:存放页面的地方
6、package.json:项目依赖配置及开发者信息。
7、app.js:应用核心配置文件,项目入口

 

app.js配置详解

// 1. 导入相关模块
var createError = require(‘http-errors‘);  //引用
var express = require(‘express‘);   //引用express
var path = require(‘path‘);   // 服务器路径
var cookieParser = require(‘cookie-parser‘);   //解析cookie
var bodyParser = require(‘body-parser‘);   // 解析request,respond参数
var logger = require(‘morgan‘);   //日志功能,需要手动配置

var indexRouter = require(‘./routes/index‘);   //注册路由的位置
var usersRouter = require(‘./routes/users‘);

// 2. 注册var app = express()
var app = express();

// 3. 使用app.set 设置 express 内部的一些参数
// view engine setup
app.set(‘views‘, path.join(__dirname, ‘views‘));   //设置模板文件夹的路径
app.set(‘view engine‘, ‘ejs‘);   //设置视图模板为ejs

// 4. 使用app.use 来注册函数,可以简单的认为是向task的数组进行push操作
app.use(logger(‘dev‘));   //设为开发模式 输出信息
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended:false }))
app.use(express.static(path.join(__dirname, ‘public‘)));   //静态资源文件夹为public

app.use(‘/‘, indexRouter);   //设置url为 /引向index路由
app.use(‘/users‘, usersRouter);   //设置url为 /user引向user路由

// catch 404 and forward to error handler 捕获404错误信息
app.use(function(req, res, next) {
  next(createError(404));
});

// 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;

  

 

 

routes(index.js和user.js)

这个主要是配置完app.js之后,如何使用,主要涉及路由级中间件的使用。

# 1. 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;

# 2. users.js
var express = require(‘express‘);
var router = express.Router();

/* GET users listing. */
router.get(‘/‘, function(req, res, next) {
  res.send(‘respond with a resource‘);
});

module.exports = router;

  

 

一个页面的运行过程和逻辑大致分为三步,路由中间件(index.js)的书写同时中间件的模板(index.ejs)要写好、最后由app.js配置和调用路由中间件。

1.app.js配置

var indexRouter = require(‘./routes/index‘);   //注册路由的位置
var usersRouter = require(‘./routes/users‘);

app.use(‘/‘, indexRouter);   //设置url为 /引向index路由
app.use(‘/users‘, usersRouter);   //设置url为 /user引向user路由

2.routes 调用路由级中间件

# 1. 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;

# 2. users.js
var express = require(‘express‘);
var router = express.Router();

/* GET users listing. */
router.get(‘/‘, function(req, res, next) {
  res.send(‘respond with a resource‘);
});

module.exports = router;

3.views 模板渲染

# index.ejs 模板
<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
  </body>
</html>

  

 

文章来源于:https://blog.csdn.net/u014465934/article/details/81210254

 

以上是关于Express 项目结构分析的主要内容,如果未能解决你的问题,请参考以下文章

Express项目创建以及其路由介绍

Express项目创建以及其路由介绍

Express项目创建以及其路由介绍

11 Express安装入门与模版引擎ejs

express+gulp构建项目项目目录结构

nodejs 应用火焰图简单分析