首页 > 其他 > 详细

express-demo示例

时间:2015-11-23 02:06:19      阅读:382      评论:0      收藏:0      [点我收藏+]

1.npm?install?-g?express

2.npm?install?-g?express-generator

最新的express将命令行工具分离出来,放在express-generator组件中

3.express?-V查看版本,express是否安装成功

4.express?projectname在当前目录下创建命名为projectnameexpress工程文件

App.js路口文件

Public存放cssjs文件和图片

Routes存放各路由具体操作的js文件,包括渲染模板

Views存放jade视图文件

5.cd?projectname

?npm?install

进入工程文件,安装所需的node依赖包

6.npm?start启动express工程文件,之前的版本该操作是node?app.js

7.访问localhost:3000浏览网页

?

?

Demo代码示例

?

app.js:

?

var?express?=?require(‘express‘);

var?path?=?require(‘path‘);

var?favicon?=?require(‘serve-favicon‘);//第三方中间件,网页图标中间件,域名前的图标

var?logger?=?require(‘morgan‘);//在控制台中输出request请求的信息,比如通过get方法加载css样式

var?cookieParser?=?require(‘cookie-parser‘);//解析cooike中间件

var?bodyParser?=?require(‘body-parser‘);//解析请求体中间件

?

var?routes?=?require(‘./routes/index‘);

var?users?=?require(‘./routes/users‘);

?

var?app?=?express();

?

app.set(‘views‘,?path.join(__dirname,?‘views‘));//模板文件的目录,__dirname当前文件所在路径

app.set(‘view?engine‘,?‘jade‘);//设置渲染引擎

?

//?uncomment?after?placing?your?favicon?in?/public

//app.use(favicon(path.join(__dirname,?‘public‘,?‘favicon.ico‘)));

app.use(logger(‘dev‘));

app.use(bodyParser.json());

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

app.use(cookieParser());

app.use(express.static(path.join(__dirname,?‘public‘)));//静态文件处理中间件,模板的cssjs文件路径命会拼接到public

?

//配置路由规则,顺序执行,率先执行的规则有效,后面的会被忽略,使用next()方法可以使后续的路由规则得到执行

app.use(‘/‘,?routes);

app.use(‘/users‘,?users);

?

//?catch?404?and?forward?to?error?handler

app.use(function(req,?res,?next)?{

??var?err?=?new?Error(‘Not?Found‘);

??err.status?=?404;

??next(err);

});

?

//?error?handlers

?

//?development?error?handler

//?will?print?stacktrace

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

????});

??});

}

?

//?production?error?handler

//?no?stacktraces?leaked?to?user

app.use(function(err,?req,?res,?next)?{

??res.status(err.status?||?500);

??res.render(‘error‘,?{

????message:?err.message,

????error:?{}

??});

});

module.exports?=?app;

?

?

?

routes/index.js:

?

var?express?=?require(‘express‘);

var?router?=?express.Router();

?

router.get(‘/‘,?function(req,?res,?next)?{

??res.render(‘index‘,?{?title:?‘Express‘?});

});

?

module.exports?=?router;

?

?

?

views/index.jade:

?

extends?layout

block?content

??h1=?title

??p?Welcome?to?#{title}

?

views/layout.jade:

?

doctype?html

html

??head

????title=?title

????link(rel=‘stylesheet‘,?href=‘/stylesheets/style.css‘)

??body<!--?拆分的模板只会渲染body内容?-->

????block?content

?

参考:

Nodejs基础中间件:http://blog.fens.me/nodejs-connect/

Express使用指南:http://www.expressjs.com.cn/guide/routing.html

express-demo示例

原文:http://schifred.iteye.com/blog/2258347

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!