Express4--说明

简介: express4.*;(1) var app = express();   生成一个express实例 app。 (2) app.set('views', path.join(__dirname, 'views’)):   设置 views 文件夹为存放视图文件的目录, 即存放模板文件的地方,__dirname 为全局变量,存储当前正在执行的脚本所在的目录。

express4.*;
(1)

 var app = express();

  生成一个express实例 app。

(2)

app.set('views', path.join(__dirname, 'views’)):

  设置 views 文件夹为存放视图文件的目录, 即存放模板文件的地方,__dirname 为全局变量,存储当前正在执行的脚本所在的目录。

(3)

app.set('view engine', 'ejs’):

  设置视图模板引擎为 ejs。

(4)

app.use(favicon(__dirname + '/public/favicon.ico’)):

  设置/public/favicon.ico为favicon图标。

(5)

app.use(logger('dev’)):

  加载日志中间件。

(6)

app.use(bodyParser.json()):

  加载解析json的中间件。

(7)

app.use(bodyParser.urlencoded({ extended: false })):

  加载解析urlencoded请求体的中间件。

(8)

app.use(cookieParser()):

  加载解析cookie的中间件。

(9)

app.use(express.static(path.join(__dirname, 'public'))):

  设置public文件夹为存放静态文件的目录。

(10)

app.use('/', routes);
app.use('/users', users):

  路由控制器。

(11)

app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

  捕获404错误,并转发到错误处理器。

(12)

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模版并显示到浏览器中。

(13)

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

 生产环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中。

(14)

module.exports = app :

  导出app实例供其他模块调用。

我们再看 bin/www 文件:

#!/usr/bin/env node
var debug = require('debug')('blog'); var app = require('../app'); app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { debug('Express server listening on port ' + server.address().port); }); 

(1)

#!/usr/bin/env node:

  表明是 node 可执行文件。

(2)

var debug = require('debug')('blog’):

  引入debug模块,打印调试日志。

(3)

var app = require('../app’):

  引入我们上面导出的app实例。

(4)

app.set('port', process.env.PORT || 3000):

  设置端口号。

(5)

var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});

  启动工程并监听3000端口,成功后打印 Express server listening on port 3000。

我们再看 routes/index.js 文件:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});

module.exports = router;

  生成一个路由实例用来捕获访问主页的GET请求,导出这个路由并在app.js中通过app.use('/', routes); 加载。这样,当访问主页时,就会调用res.render('index', { title: 'Express' });渲染views/index.ejs模版并显示到浏览器中。

目录
相关文章
|
关系型数据库 MySQL
922.【mysql】if 函数
922.【mysql】if 函数
527 3
|
Java 数据管理 关系型数据库
Spring Boot中实现多数据源配置
Spring Boot中实现多数据源配置
|
算法 Java 编译器
java.io.InvalidClassException异常解决
java.io.InvalidClassException异常解决
|
4天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
6天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
403 93
|
6天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
399 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%