最近在项目组是用node.js相关技术。
对node.js中间件是用记录下来,做备忘录
app.set(name, value):设置 name 的值为 value
set 方法类似KEY-VALUE结构,存储值,可用于系统初始化,设置相关程序配置参数或常量到内存中,供后续使用,使用方式 app.get(name)获取值
eg:
app.set('port', process.env.PORT || 3000):设置端口为 process.env.PORT 或 3000
app.set('views', __dirname + '/views'):设置 views 文件夹为视图文件的目录,存放模板文件,__dirname 为全局变量,存储着当前正在执行脚本所在的目录名。
app.set('view engine', 'ejs'):设置视图模版引擎为 ejs
app.use 加载中间件,中间件在node.js中,有点拦截器栈的味道,每一个请求,都要依次经过配置的中间件,顺序按中间件加载顺序。
eg:
app.use([path], function):使用中间件 function,可选参数path默认为"/"
app.use(express.favicon()):connect 内建的中间件,使用默认的 favicon 图标,如果想使用自己的图标,需改为app.use(express.favicon(__dirname + '/public/images/favicon.ico')); 这里我们把自定义的 favicon.ico 放到了 public/images 文件夹下。
app.use(express.logger('dev')):connect 内建的中间件,在开发环境下使用,在终端显示简单的不同颜色的日志,比如在启动 app.js 后访问 localhost:3000,终端会输出:Express server listening on port 3000 GET / 200 21ms - 206b GET /stylesheets/style.css 304 4ms
数字200显示为绿色,304显示为蓝色。假如你去掉这一行代码,不管你怎么刷新网页,终端都只有一行 Express server listening on port 3000。
app.use(express.bodyParser()):connect 内建的中间件,用来解析请求体,支持 application/json, application/x-www-form-urlencoded, 和 multipart/form-data。
app.use(express.methodOverride()):connect 内建的中间件,可以协助处理 POST 请求,伪装 PUT、DELETE 和其他 HTTP 方法。
app.use(app.router):设置应用的路由(可选),详细请参考:http://stackoverflow.com/questions/12695591/node-js-express-js-how-does-app-router-work
app.use(express.static(path.join(__dirname, 'public'))):connect 内建的中间件,设置根目录下的 public 文件夹为静态文件服务器,存放 image、css、js 文件于此。
if ('development' == app.get('env')) {app.use(express.errorHandler());}:开发环境下的错误处理,输出错误信息。
app.get('/', routes.index):路由控制器,如果用户访问" / "路径,则由 routes.index 来控制,routes/index.js 内容如下:
exports.index = function(req, res){ res.render('index', { title: 'Express' }); };
通过 exports.index 导出 index 函数接口,app.get('/', routes.index) 相当于:
app.get('/', function(req, res){ res.render('index', { title: 'Express' }); };)
res.render('index', { title: 'Express' }):调用 ejs 模板引擎解析 views/index.ejs(我们之前通过 app.set('views', __dirname + '/views')设置了模版文件默认存储在 views 下),并传入一个对象作为参数,这个对象只有一个属性 title: 'Express',即用字符串 Express 替换 views/index.ejs 中所有 title 变量,后面我们将会了解更多关于模板引的内容。
http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });
这段代码的意思是创建服务器并监听3000端口,成功后在命令行中显示 Express server listening on port 3000,然后我们就可以通过在浏览器输入 localhost:3000 来访问了。
这一小节我们学习了如何创建一个工程并启动它,了解了工程的大体结构,下一节我们将学习 Express 的基本使用及路由控制。
分享到:
相关推荐
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 语言在服务器端编写可扩展的网络应用。Node.js 利用了事件驱动、非阻塞I/O模型,使其在处理高并发请求时表现出极高的性能。...
这个"用于处理“multipart_form-data”的Node.js中间件.zip"文件很可能包含了处理这种类型数据的中间件,帮助开发者接收和处理用户通过HTTP上传的文件。中间件是Node.js Express框架中常用的一种机制,它可以拦截、...
9. **中间件**:通过Koa、Express等框架,Node.js支持使用中间件来组织和分发请求处理逻辑,使代码更加清晰和模块化。 10. **数据库集成**:Node.js可以与各种数据库(如MongoDB、MySQL等)无缝集成,提供快速的...
Node.js是基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O、事件驱动的特性在服务器端编程领域独树一帜,尤其适合构建高性能的网络应用。本书通过115个关键技巧的讲解,全面覆盖了Node.js的基础到高级应用...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"Node.js最新手册"很可能包含了关于Node.js的最新API、模块系统、事件驱动模型以及异步I/O等内容。 在...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端运行,打破了JavaScript只能在浏览器中使用的限制。Node.js采用单线程、事件驱动的非阻塞I/O模型,使其在高并发场景下表现出色,...
《Node.js实战(第2版)》是一本深入探讨Node.js技术的实战指南,适合有一定JavaScript基础并希望进一步掌握Node.js开发的读者。本书详细介绍了如何利用Node.js的强大功能进行后端开发,以及如何与其他技术栈配合,...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这本《Node入门一本全面地Node.js教程》PDF,是学习Node.js的基础指南,涵盖了从安装到实际项目开发的全方位...
书中还将涉及Express框架的使用,Express是Node.js中最流行的Web应用框架,它简化了路由设置、中间件使用和模板引擎等常见任务。通过Express,开发者可以快速搭建功能齐全的Web服务。 数据库连接也是Node.js开发中...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 来进行服务器端编程。这个技术的出现极大地推动了Web应用的开发效率,特别是对于实时、高并发的网络应用来说,Node.js ...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript开发者可以在服务器端执行代码,打破了传统的JavaScript只能在浏览器端运行的限制。这本《Node.js开发实战详解》电子书,显然是为了帮助那些...
connect 是 Node.js 的中间件,捆绑了超过 18 个中间件,同时还提供丰富的第三方中间件。 标签:connect
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端执行,打破了JavaScript只能在浏览器中运行的传统。本教程旨在帮助初学者及有一定基础的学习者深入理解并掌握Node.js的核心概念...
1. **Node.js基础**:Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。讲解可能包括了JavaScript在Node.js中的异步非阻塞I/O模型,事件驱动编程的概念,以及如何...
1. Express框架:Express是基于Node.js的最流行的Web应用框架,简化了路由、中间件和模板引擎的使用。 2. MongoDB数据库连接:通过Mongoose库,可以轻松连接和操作MongoDB数据库。 3. WebSocket:实现实时通信的关键...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。在给定的"server.js"文件中,我们可以推测它是一个简单的Node.js服务器示例,用于演示如何在Node.js环境中处理...
Node.js,作为一款基于Chrome V8引擎的JavaScript运行环境,以其异步、非阻塞I/O和事件驱动的特性,在Web开发领域占据了一席之地。这本书“Node.js实战”旨在帮助读者深入理解Node.js的核心概念,并通过实践案例提升...
Node.js是一门基于Chrome V8引擎的JavaScript服务器端运行环境,它使得开发者能够使用JavaScript语言开发服务器端应用程序。由于其异步非阻塞I/O模型和事件驱动设计,Node.js尤其适合于构建可扩展的网络应用,如社交...