node.js第十三课(工程的结构)
来源:互联网 发布:香港人怎么看大陆知乎 编辑:程序博客网 时间:2024/06/05 23:53
一、app.js 工程的入口
分析代码:
1.我们导入了express模块,前面我们通过npm install依赖上了,在这里就可以直接通过require获取、
2.routes是一个文件夹形式的本地模块,即./routes/index.js,他的功能是为指定的路径组织返回内容,相对于mvc架构中的控制器。
3.app.set是Express的参数设置工具,接受一个键(key)和一个值(value),可以用的参数如下:
basepath:基础机制,通常用于res.redirect()跳转
views:视图文件的目录,存放模版文件
port:指定的端口
view engine:视图模块引擎(推荐使用ejs)
view options:全局视图参数对象
view cache:启用视图缓存
case sensitive routes:路径区分大小写
strict routing:严格路径,启用后不会忽略路径末尾的"/"
jsonp callback:开启透明的jsonp支持
4.Express依赖于connect,connect更加短小精悍,是一个偏向基础设施的框架,提供了大量的中间件,可以通过app.use启用。
中间件:一系列的组件连接到一起,然后让http的请求依次流过这些组件。这些被connect串联起来的组件被称为中间件
app.configure中启用了五个中间件:
bodyParser:解析客户端请求。
router:项目的路由支持
static:提供静态文件支持。
methodOverride:函数重写
errorHandler:错误控制器
connect详解:http://cnodejs.org/topic/4fb79b0e06f43b56112b292c
5.app.get('/',routes.index),是一个路由控制器,用户如果访问'/'路径,则routes.index来控制。
6.通过express.createServer()函数创建一个应用的实例
//引用模块
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user');
http = require('http'),
path = require('path');
//实例化express对象
var app = express();
//配置app的参数和启用中间件
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname+'/views');
app.set('view engine','ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
//配置开发模式
app.configure('development', function(){
app.use(express.errorHandler());
});
//配置路由控制
app.get('/',routes.index);
app.get('/users',user.list);
//配置服务并监听端口
http.createServer(app).listen(app.get('port'),function(){
console.log('Express server listening on port' + app.get('port'));
});
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user');
http = require('http'),
path = require('path');
//实例化express对象
var app = express();
//配置app的参数和启用中间件
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname+'/views');
app.set('view engine','ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
//配置开发模式
app.configure('development', function(){
app.use(express.errorHandler());
});
//配置路由控制
app.get('/',routes.index);
app.get('/users',user.list);
//配置服务并监听端口
http.createServer(app).listen(app.get('port'),function(){
console.log('Express server listening on port' + app.get('port'));
});
二、routes/index.js是路由文件,相当于控制器,用于组织展示的内容。
//index.js
exports.index = function(req, res){
res.render('index', { title: 'octopus' });
};
res.render('index', { title: 'octopus' });
};
app.js中通过app.get('/',routes.index)将'/'路径映射到exports.index函数下,其中只有一个语句,
res.render('index',{title:"octopus"}),功能是调用模版解析引擎,并传入一个对象作为参数,这个对象只有一个属性,即title
三、index.ejs模版文件,即routes.index.js中调用的模版。
//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>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
</body>
</html>
它的基础是HTML语言,其中包含了<%=title%>的标签,功能是显示引用的变量。
即res.render函数的第二个参数是第一个参数指定的路径下文件中引用的参数.
6 0
- node.js第十三课(工程的结构)
- node.js工程的结构
- node.js express工程的结构
- node.js 之express web工程目录结构
- 使用webstorm创建一个简单的node.js工程
- 【Node.js】初始化工程时加载全部的node_modules
- npm 运行基于 es6 的 node.js 工程
- JS工程文件结构
- JS事件(第十三课)
- Node.js入门:包结构
- Node.js Express目录结构
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- node.js 介绍 (关于node.js 的误会)
- Node.js学习札记:Node.js的安装(Windows)
- 详解Node.js包的工程目录与NPM包管理器的使用_node.js
- hdu 2955
- 如何判断链表中是否有环
- vi常用操作
- opencv移植2
- [JAVA]简单的打字母游戏
- node.js第十三课(工程的结构)
- log file sync 等待超高一例子
- Leetcode之递归之苦
- 二叉树运用
- 蛇形填数
- Eclipse启动提示javaw.exe in your current PATH、No java virtual machine
- Hibernate Annotation中BLOB、CLOB注解写法
- 中转服务器
- Android studio使用教程