express通过生成器
express通过生成器 【 脚手架 】
1. 作用:可以帮助快速构建一个express项目
2. 脚手架的安装
- 全局安装 【可以使用npm cnpm】
- $ cnpm i express-generator -g
- npx安装
- npx是npm下的一个管理工具,它可以让我们不全局安装使用某一个包
- npx的好处就是可以帮助我们减少使用内存
- 但是npx要求npm的版本在5.2以上
- npx是npm自动携带的
3.脚手架的使用
- 全局安装的使用
- $ express -e 项目名称 (-e:--ejs)
- npx安装的使用
- $ npx express -e 项目名称
4.认识项目目录结构
项目文件
> bin
> public
> routes
> views
app.js
package.json
- 1.先找到package.json [ 记录了项目的依赖包信息,npm脚本 ]
{
"name": "01-web-server-ssr",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "nodemon ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"ejs": "~2.6.1",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"morgan": "~1.9.1"
}
}
- 2.找到项目启动文件 bin/www
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server = http.createServer(app);
- 它是通过http来做了一个服务器,默认端口是:3000
- 这个文件中引入了一个app文件,这个文件是将createServer中的回调函数放到了外面,以模块化的形式使用的,这个文件我们叫它: '入口文件'
- 3.看: app.js
- express是由路由和中间件构成的
- 路由:可以完成页面的连接或是接口的打造
- 中间件:中间件是一个函数,一个具有特定功能的函数
- 中间件有三个类型
- 1.应用级中间件
app.use(logger('dev')); // 日志文件记录
app.use(express.json()); // json数据格式化
app.use(express.urlencoded({ extended: false })); // 引入文件后缀名省略
app.use(cookieParser()); // cookie处理
app.use(express.static(path.join(__dirname, 'public'))); // 指定项目静态资源文件夹为public
- 2.路由中间件
// http://localhost:3000/users
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/',homeRouter)
- 3.错误处理中间件
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
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');
});
- 中间件的参数
- req : 全称: request 表示请求
- res : 全称: response 表示响应
- next: 表示request和response之间的连接 , 相当于桥梁的作用
- next如果断开,那么请求和响应就会中断 next( false )
- 中间件要想调用,必须通过app的use方法来调用
- 4. 路由中间件
- 路由中间件是以模块化的形式使用
- 看: routes/xx.js
- 有两个路径,这两个路径会拼接在一起
- 举例: /home /banner /home/banner 二级路由
- 为什么res.render('index')
- 配置了模板的路径
- 配置了后缀名省略
- 有两个路径,这两个路径会拼接在一起
5.看: view/xxx.ejs
- ejs语法
- ejs文件中可以直接在模板语法中使用数据
6。 ejs语法学习
- 注意: ejs语法符号是不能换行的
- 非转义输出 <%- %> 可以解析xml类型数据
- 转义输出 <%= %> 可以解析普通类型数据
- 流程控制 <% %>
- if条件语句
- 循环语句
express通过生成器的更多相关文章
- Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery
Node.js + MongoDB 项目实战(二) 创建项目 在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/34 ...
- 使用express.js框架一步步实现基本应用以及构建可扩展的web应用
最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架. 框架的作用就是提高开发效率,快速产出结果.即使不使用框架,我们也会在开发过程中逐渐形成构成框架. ...
- 【Node.js】一、搭建基于Express框架运行环境+更换HTML视图引擎
1)安装express generator生成器 这个express generator生成器类似于vue-cli脚手架工具,用来创建一个后端项目,首先我们要对生成器进行全局安装,在cmd中输入下 ...
- node.js使用express框架进行文件上传
关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...
- Nodejs+Express构建网站
1.预先安装(系统环境widows): nodejs 可在官网下载安装 https://nodejs.org/en/ visual studio code 可在官网下载安装 http://co ...
- express遇到的问题
1. 如何引入express? cnpm install express --save 其中--save可以保存到依赖项中. 接着 var express = require("expres ...
- Vue nodejs商城项目-搭建express框架环境
1.express-project 搭建express框架环境 安装express generator生成器 通过生成器自动创建项目 配置分析 安装 cnpm i -g express-generat ...
- 搭建基于Express框架运行环境
安装express generator生成器 通过生成器自动创建项目 配置分析 一.安装 cnpm i -g express-generator express --version // 查看版本 e ...
- 第四篇 express 安装esasticsearch
1.首先,我们创建一个Express应用程序!我将使用express.js生成器. npm install -g express-generator express ./autocompleter c ...
随机推荐
- 基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发
基于点云的3ds Max快速精细三维建模方法及系统的制作方法[技术领域][0001]本发明涉及数字城市三维建模领域,尤其涉及一种基于点云的3d ...
- 多项式总结(unfinished)
试试以二级标题为主的格式. 多项式相关 注:本篇博客不包含\(FFT\)基础姿势.如果您想要阅读本篇博客,请确保自己对\(FFT,NTT\)有基本的认识并且能够独立写出代码. 多项式是什么? 左转数学 ...
- Fiddler抓取手机Https请求
下载并安装Fiddler证书生成器 1.打开Fiddler—>Tools—>Telerik Fiddler Options... 2.Connections选项中勾选Allow remot ...
- bootstrap动态调用select下拉框
html代码: <label for="classify" class="col-sm-2 control-label">填报部门:</lab ...
- Python 元组遍历排序操作方法
在Python不可变数据类型中,有一个比较重要的角色那就是元组( tuple ).如果某个对像被定义为元组类型,那么就意味着它的值不能被修改,除非重新定义一个新的对像.元组和List列表常被放在一起进 ...
- maven入门问题解决
记录入门使用maven的问题和解决方法: 一.用mvn clean compile编译报错/ 或者在IDE中编译时,Problem视图显示错误:无法从maven服务器或者私有服务器或者某个网站中中下载 ...
- spark 学习网站和资料
spark 官网首页 https://spark.apache.org/ spark 官网文档 spark scala API 文档 https://spark.apache.org/docs/lat ...
- Linux内核调试方法总结之调试宏
本文介绍的内核调试宏属于静态调试方法,通过调试宏主动触发oops从而打印出函数调用栈信息. 1) BUG_ON 查看bug处堆栈内容,主动制造oops Linux中BUG_ON,WARN_ON用于调试 ...
- SQL Server中数据去重单列数据合并
sql中我们偶尔会用到对数据进行合并,但其中的某一列数据要进行合并的操作: 如下图,一个用户有多个角色ID,如果我们想要统计一个用户有哪些角色,并且以单列的展现形式,单纯的用DISTINCT去掉肯定是 ...
- Week 10 - 474. Ones and Zeroes
474. Ones and Zeroes In the computer world, use restricted resource you have to generate maximum ben ...