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 ...
随机推荐
- iOS 指定位置切圆角不生效问题
如果是在VC中操作,需要在viewDidLayoutSubviews方法里 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; ...
- 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)
点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...
- A Network in a Laptop: Rapid Prototyping for Software-Defined Networks
文章名称:A Network in a Laptop: Rapid Prototyping for Software-Defined Networks 文章来源:Lantz B , Heller B ...
- mac 电脑设置密码可以直接使用 passwd 这个命令
mac 电脑设置密码可以直接使用 passwd 这个命令 说明:这个命令行级别的设置会直接影响到我们登录.
- POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)
POJ2395 Out of Hay 寻找最小生成树中最大的边权. 使用 Kruskal 求解,即求选取的第 \(n-1\) 条合法边. 时间复杂度为 \(O(e\log e)\) . #includ ...
- 纯CSS3写一个立方体并在鼠标悬停的时候无限循环旋转
- git全套详细教程
git安装 首先,我们要去git的官网下载一个git安装包,双击到无关紧要的步骤我就不详细描述了,直接介绍我们关键的步骤. 选择git包含的内容和打开方式 选择都很清晰,具体情况我不是很清楚,不过选择 ...
- python实现格式化输出9*9乘法表
# python 9*9 乘法表 for i in range(1,10): for j in range(1,i+1): print("%s*%s=%s"%(i,j,i*j),e ...
- Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]
在窗体上添加 TrackBar1.Edit1.Label1, 然后设置属性(可在设计时): procedure TForm1.FormCreate(Sender: TObject); begin ...
- 双系统(win10+ubuntu)卸载Ubuntu系统
之前装的双系统,Win10 和Ubuntu ,系统引导使用的是Ubuntu的Grup的引导, 直接删除Ubuntu会导致引导丢失,会很麻烦,win10直接会挂掉,后期恢复需要重建引导 安全删除思路,先 ...