zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ios 写项目的时候遇到的问题及解决方案(1)
    思绪锦集
    iOS学习-----真机测试过程
    StackOverflow程序员推荐的几本书籍
    关于算法学习的重要性
    程序的灵魂-算法
    C++ 之 const 随笔记
    Foundation 框架之——NSString、NSMutableString
    Objective-C之NSString和NSMutableString
    Objective-C之集合对象(NSSet,NSMutableSet,NSIndexSet)
  • 原文地址:https://www.cnblogs.com/x0815/p/12368758.html
Copyright © 2011-2022 走看看