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通过生成器的更多相关文章

  1. Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery

    Node.js + MongoDB 项目实战(二)  创建项目 在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/34 ...

  2. 使用express.js框架一步步实现基本应用以及构建可扩展的web应用

    最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架. 框架的作用就是提高开发效率,快速产出结果.即使不使用框架,我们也会在开发过程中逐渐形成构成框架. ...

  3. 【Node.js】一、搭建基于Express框架运行环境+更换HTML视图引擎

      1)安装express generator生成器 这个express generator生成器类似于vue-cli脚手架工具,用来创建一个后端项目,首先我们要对生成器进行全局安装,在cmd中输入下 ...

  4. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  5. Nodejs+Express构建网站

    1.预先安装(系统环境widows): nodejs  可在官网下载安装  https://nodejs.org/en/ visual studio code  可在官网下载安装  http://co ...

  6. express遇到的问题

    1. 如何引入express? cnpm install express --save 其中--save可以保存到依赖项中. 接着 var express = require("expres ...

  7. Vue nodejs商城项目-搭建express框架环境

    1.express-project 搭建express框架环境 安装express generator生成器 通过生成器自动创建项目 配置分析 安装 cnpm i -g express-generat ...

  8. 搭建基于Express框架运行环境

    安装express generator生成器 通过生成器自动创建项目 配置分析 一.安装 cnpm i -g express-generator express --version // 查看版本 e ...

  9. 第四篇 express 安装esasticsearch

    1.首先,我们创建一个Express应用程序!我将使用express.js生成器. npm install -g express-generator express ./autocompleter c ...

随机推荐

  1. iOS 指定位置切圆角不生效问题

    如果是在VC中操作,需要在viewDidLayoutSubviews方法里 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; ...

  2. 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)

    点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...

  3. 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 ...

  4. mac 电脑设置密码可以直接使用 passwd 这个命令

    mac 电脑设置密码可以直接使用 passwd 这个命令 说明:这个命令行级别的设置会直接影响到我们登录.

  5. POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)

    POJ2395 Out of Hay 寻找最小生成树中最大的边权. 使用 Kruskal 求解,即求选取的第 \(n-1\) 条合法边. 时间复杂度为 \(O(e\log e)\) . #includ ...

  6. 纯CSS3写一个立方体并在鼠标悬停的时候无限循环旋转

  7. git全套详细教程

    git安装 首先,我们要去git的官网下载一个git安装包,双击到无关紧要的步骤我就不详细描述了,直接介绍我们关键的步骤. 选择git包含的内容和打开方式 选择都很清晰,具体情况我不是很清楚,不过选择 ...

  8. 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 ...

  9. Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]

    在窗体上添加 TrackBar1.Edit1.Label1, 然后设置属性(可在设计时): procedure TForm1.FormCreate(Sender: TObject); begin   ...

  10. 双系统(win10+ubuntu)卸载Ubuntu系统

    之前装的双系统,Win10 和Ubuntu ,系统引导使用的是Ubuntu的Grup的引导, 直接删除Ubuntu会导致引导丢失,会很麻烦,win10直接会挂掉,后期恢复需要重建引导 安全删除思路,先 ...