Express 应用生成器
express-generator 能够快速创建一个Express应用框架
1.全局安装express-generator
npm install express-generator -g
2.在指定目录下创建一个命名为myProject的应用(即目录名为myProject的应用)
express myapp
3.进入创建的目录并安装所有依赖包
cd myProject
npm install
4.启动应用
npm start
端口默认为3000,运行启动命令后,在浏览器打开http://localhost:3000/网址即启动应用了
5.Express应用生成器创建的应用的目录结构
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade
6.写命令直接打开
创建.bat文件:
@echo off
start http://localhost:3000
supervisor -i data,public,node_modules,.git,.idea,*.log,*.bat ./bin/www //监听
echo.
pause
7.package.json
{
"name": "trunk",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www" //指定运行 npm run start时所要执行的命令 启动./bin/www
},
"dependencies": {
"body-parser": "~1.17.1",
"cookie-parser": "~1.4.3",
"debug": "~2.6.3",
"express": "~4.15.2",
"jade": "~1.11.0",
"morgan": "~1.8.1",
"serve-favicon": "~2.4.2"
}
}
8. /bin/www
作用:主要是启动应用,设置端口,创建http server
var app = require('../app');
var debug = require('debug')('oa-pc:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
9.app.js
注意进行一些公共的配置
a. 应用程序设置表的设置
设置模版引擎:
// view engine setup
app.set('views', path.join(__dirname, 'views')); //应用程序视图的目录或目录数组
// pug模板引擎
app.set('view engine', 'pug');
//设置视图引擎的扩展名
// 注册一个ejs模板引擎
app.engine('html', ejs.renderFile); //EJS模版引擎寄存在指定的扩展文件(即html文件里面写ejs的语法)
app.set("view engine", "html");
b. favicon的设置
var favicon = require('serve-favicon'); //引入模块
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
c. 中间件(Middleware)的功能是按顺序执行的
//静态资源(根目录下,即:/)
app.use(express.static(path.join(__dirname, 'public')));
// 指定静态资源的路径(path)的前面部分(/static/xxxx)
app.use('/static', express.static(__dirname + '/public'));
//多个静态资源目录
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/files'));
app.use(express.static(__dirname + '/uploads'));