express app.js文件的简述

来源:互联网 发布:wps选定数据求和为0 编辑:程序博客网 时间:2024/05/20 00:12

1.app.set(name,value)

  把名字为name的项的值设为value,用于设置参数

  app.set(‘views’, path.join(__dirname, ‘views’)); 设置了模版文件夹的路径;path.join(__dirname, ‘views’)指向当前执行文件的路径下的views文件夹。

  app.set(‘view engine’, ‘ejs’); 设置使用的模版引擎,这句代码表示使用的ejs。

2.app.use([path], function)

  用这个方法来使用中间件,因为express依赖于connect,有大量的中间件,可以通过app.use来使用;path参数可以不填,默认为’/’ (项目中用到的就不分别解释了,用到的时候自已查一API的中间件部分)

  app.use(express.static(path.join(__dirname, ‘public’))); 这一句中可能要注意一下,express.static( )是处理静态请求的,设置了public文件,public下所有文件都会以静态资料文件形式返回(如样式、脚本、图片素材等文件)

var routes = require(‘./routes/index’);
var users = require(‘./routes/users’);

app.use(‘/’, routes);
app.use(‘/users’, users);
  上面代码表示当用户使用/访问时,调用routes,即routes目录下的index.js文件,其中.js后缀省略,用/users访问时,调用routes目录下users.js文件

3.app.get(name)

  获取名为name的项的值

if (app.get('env') === 'development') {    app.use(function(err, req, res, next) {        res.status(err.status || 500);        res.render('error', {            message: err.message,            error: err        });    }); }

表示如果是开发环境,处理error时会输出堆栈信息

4.路由文件index.js

  主要看下面这段代码

router.get('/', function(req, res) {  res.render('index', { title: 'express项目'});});

  这段表示,router.get表示通过get请求/时,响应后面的function处理,两个参数分别是request、response;

  res.render表示调用模版引擎解析名字index的模板,传并传入了title和users两个对象做为参数;

  为什么它会知道解板views目录下的index.ejs?而不是其它目录下的文件,或者后其它后缀名的文件?

  原因就是app.js中的设置:

app.set(‘views’, path.join(__dirname, ‘views’));
app.set(‘view engine’, ‘ejs’);

0 0
原创粉丝点击