美文网首页
express 脚手架项目具体分析

express 脚手架项目具体分析

作者: 述云 | 来源:发表于2018-04-20 12:05 被阅读0次

    序言:即便是在做前端,但是还是对路由以及数据层面的操作抱有极大的热情。或许我总觉得这些事情本身就是前端可以做的。后台做的应该是更复杂的数据操作。

    项目的安装和搭建

    首先得配置node环境,安装express包。在这个地方我直接进行了全局安装,毕竟以后反正都可以使用嘛。


    全局安装
    ps:用的公司的windows 这个命令行是真的丑。
    

    然后使用express <your_file_name>来生成模板项目了。


    生成模板
    文件目录

    脚手架搭建的项目就完成了,接下来我们就来一一分析各个文件夹和文件的作用吧

    项目的具体分析

    package.json
    我们先来看npm包配置,设置了scripts的start,就可以知道项目的入口文件是.bin/www。这样,我们就有了开始分析的地方。
    .bin/www
    可以看到,具体的操作并不是在这个地方实现的,在这里引入了路由的配置。
    var app = requier('.../app')
    并且设置了路由的端口,初始化了服务,并且在端口上进行了监听。
    然后我们就进入app.js文件
    app.js
    可以看到,在这个地方就对express进行了实例化了.var app = express();
    生成了express的实例。app.set(‘view’)就是在对模板引擎做的设置。
    此外,用到的最多的就是app.ues()
    app.ues()的官网解释
    在官网上的app.ues() 的解释就是把中间件挂载到相应的路由上。
    根据挂载的位置,也就分了不同的中间件,有:
    应用级中间件,路由级中间件,错误级中间件,第三方中间件。
    官网解释地址
    我的理解:应用级是挂载在app上面的,就是直接是express的实例上面的。
    而路由级的是挂载在router上的,所以具体的路由是由相应的对照的。不是针对每一个路由的。
    上述这些都是对于没有指定path的情况,如果指定了path和method的话,就是在上面覆盖的意思了
    路由
    然后在这里又看到了具体的路由指定,就进去app.js一看究竟
    index.js
    看到在这里实例的就不再是直接的express了,而是express.Router()
    可使用 express.Router 类创建模块化、可挂载的路由句柄。Router 实例是一个完整的中间件和路由系统,因此常称其为一个 “mini-app”。
    这个地方实例的router就是用来在app.js中引用和使用的,他就是一个模块化、可挂载的路由句柄。
    这个路由句柄是必须在app.js中加载和使用的。
    app.use('/', indexRouter);
    app.use('/users', usersRouter);
    还会在使用的时候指定相应的路径作为起始路径。
    路由差不多就是这样了,然后就是对转到相应路由的方法做一个了解了。

    界面渲染

    res是一个响应对象,使用render方法进行模板渲染。

    //有三种方法的渲染
    // send the rendered view to the client
    res.render('index');
    
    // if a callback is specified, the rendered HTML string has to be sent explicitly
    res.render('index', function(err, html) {
      res.send(html);
    });
    
    // pass a local variable to the view
    res.render('user', { name: 'Tobi' }, function(err, html) {
      // ...
    });
    

    三个参数分别是模板的名称、传的参数和回调方法。
    一般现在在express推荐的模板好像是pug格式的,就是之前Jade的新名字。

    差不多这就是我对express项目的一个初步的了解。纯新手,若有错误,造成误解,以官网为准。
    ps:存在一点疑惑,不知道这个生成的模板是否支持es6语法。因为没有找到对应的打包文件,但是在试验中好像支持箭头函数。
    pps:刚来公司,正好遇到才给我们做了培训的前辈离职,有点唏嘘。

    相关文章

      网友评论

          本文标题:express 脚手架项目具体分析

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