Webstorm 新建 Express 项目结构分析

根据Webstorm新建Express的项目结构,对Express各个模块间功能和文件夹合作进行分析。

参考文章:
https://www.jianshu.com/p/02273a225e3e

1.新建Express项目目录:

这里写图片描述

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

2.app.js配置详解

可以参考文章:
http://www.cnblogs.com/fhen/p/5257467.html
https://blog.csdn.net/qq_31411389/article/details/54019267

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

3.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;

4 . Express项目运行的总体的过程和逻辑大致可以分为三步:

综合上面知识,可以看出一个页面的运行过程和逻辑大致分为三步,路由中间件(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>

express框架学习笔记:
https://www.cnblogs.com/liujiale/p/6023367.html
https://blog.csdn.net/qq_31411389/article/category/6371088
http://www.cnblogs.com/ostrich-sunshine/p/6756147.html
http://www.cnblogs.com/ostrich-sunshine/p/7474471.html
http://www.cnblogs.com/ostrich-sunshine/category/977656.html

猜你喜欢

转载自blog.csdn.net/u014465934/article/details/81210254