文章写得不是很好,只是为了后期可能忘了,而做得一个笔记。
express
express基于 Node.js 平台,快速、开放、极简的 Web 开发框架,学习express之前最好有一定的nodejs基础知识
使用脚手架安装
安装node.js后,在工作目录下运行一下命令:
//安装Express 全局安装(安装完可创建项目)
npm install express-generator -g
//通过 npm init 命令为你的应用创建一个 package.json 文件。
//npm init
//到指定目录下创建expressDemo项目
express expressDemo
//初始化
npm install
// 安装nodemon 和cross-env
npm i nodemon cross-env --save-dev
//安装xss 对于用户的输入、调用服务取得的json 进行过滤
npm install xss --save
//数据库 可提前安装了
npm install mysql --save
//安装express-session 后面会用到,简单例子可不安装
npm install express-session --save
//安装express-redis 后面会用到,简单例子可不安装
npm install redis connect-redis --save
nodemon这个工具,它的作用是监听代码文件的变动,当代码改变之后,自动重启。
cross-env是运行跨平台设置和使用环境变量(Node中的环境变量)的脚本。
npm start (运行)
去bin–>www 查看端口号
在package.json 里面scripts 设置环境变量参数,及通过nodemon监听文件的变化
"dev":"cross-env NODE_ENV=dev nodemon ./bin/www"
这样 一个简单的express项目就搭建完成了,下面是app.js里面插件的一些注解
var createError = require('http-errors'); //检验错误页的处理
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser'); //解析cookie
var logger = require('morgan'); //实现记录过程 log 自动生成日志,需要配置
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express(); //初始化app 监听客户端访问,每次访问都会形成一个实例
// view engine setup 视图引擎的设置 即前端 可注释,(只做后台)
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json()); //数据处理
app.use(express.urlencoded({ extended: false }));//处理格式兼容
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); //设置静态文件
//注册路由
app.use('/', indexRouter); //根路径
app.use('/users', usersRouter);
// catch 404 and forward to error handler 检验错误页的处理
app.use(function(req, res, next) {
next(createError(404));
});
// error handler 抛错处理, 区分环境 dev对应package.json里面的dev
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') === 'dev' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;