欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nodejs app.js详解

程序员文章站 2022-06-29 17:35:32
...

app.js代码及其解释

//这里主要是引用所必须要的模块,当然,这些模块是需要使用“npm install 模块名”安装的
//模块依赖
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');

//定义app,生成一个express实例
var app = express();

//设置views文件夹为存刚视图文件的目录,即存放模板文件的目录
//_dirname为全局变量,存储当前正在执行的脚本所在的目录
app.set('views', path.join(__dirname, 'views'));
//设置视图模板引擎为jade
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'));
//加载解析json的中间件
app.use(bodyParser.json());
//架子啊解析urlencoded请求的中间件
app.use(bodyParser.urlencoded({ extended: false }));
//加载解析cookie的中间件
app.use(cookieParser());
//设置public文件夹为存放静态文件的目录
app.use(express.static(path.join(__dirname, 'public')));

//加载路由——路由控制器
app.use('/', index);
app.use('/users', users);

// catch 404 and forward to error handler
//记载错误处理解决方法
//捕获404错误,并转发到错误处理器
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
//开发环境下的错误处理器,将错误信息渲染error模板并显示浏览器中
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

//导出app对象供其他模板调用
module.exports = app;

默认生成的app.js所加载的视图文件时jade模板,即视图文件是以“jade”结尾的文件。若想访问“html”模板可以配置让其支持ejs或html模板。只需几步即可完成配置

1、安装ejs。在项目根目录安装ejs。

npm install ejs
2、引入ejs

var ejs = require('ejs');  //我是新引入的ejs插件
3、设置html模板

app.engine('html', ejs.__express);
4、设置视图引擎

app.set('view engine', 'html');

保存后重启服务,即可访问html文件。


创建项目可查看http://blog.csdn.net/hh12211221/article/details/77555344

package.json详解可查看http://blog.csdn.net/hh12211221/article/details/77567627

demo示例可查看http://blog.csdn.net/hh12211221/article/details/77573292


相关标签: nodejs app.js