学习Node.js-2

4.Node.js的框架 express
1.express通过生成器【脚手架】
2. 脚手架的安装

  • 全局安装 [ 可以使用npm、cnpm ]
    • $ cnpm i express-generator -g
  • npx安装
    • npx是npm的一个管理工具,它可以让我们不全局安装就使用某一个包
    • npx好处就是可以帮助我们减少使用内存
    • 但是npx要求npm的版本在5.2以上
    • npx是npm会自动携带
  1. 脚手架的使用
  • 全局安装的使用
    • express -e 项目名称
  • npx的使用
    • npx express -e 项目名称
  1. 认识项目目录结构
      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”
        }
        }
    1. 找到了项目启动文件 bin/www
    • 它是通过http来做了一个服务器,默认端口是:3000
    • 这个文件中引入了一个app文件,这个文件是将createServer中的回调函数放到了外面,以模块化的形式使用的,这个文件我们叫它: ‘入口文件’
      Express中的路由
      可以自动编译
      supervisor ./bin/www

修改routes/users.js
var express = require(‘express’);
var router = express.Router();

/* GET users listing. */
router.get(’/’, function(req, res, next) {
res.send(‘respond with a resource’);
//不能够进行第二次send,会崩溃
});
router.get("/list", function(req, res, next){
res.send(‘user list’);
});

//还可以写正则表达式
router.get("/ab*cd", function(req, res, next){
res.send(“regexp”);
})

//加载form表单页面
router.get("/form", function(req, res){
res.sendFile(__dirname + “/form.html”);
})

router.post("/save", function(req, res){
res.send(“表单提交”);
})
//同时接收get和post请求
router.all("/all", function(req, res){
res.send(“all”);
})

module.exports = router;

同目录下新增form.html

    1. 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
            1. 路由中间件
              // http://localhost:3000/users
              app.use(’/’, indexRouter);
              app.use(’/users’, usersRouter);
              app.use(’/’,homeRouter)
            1. 错误处理中间件
              // catch 404 and forward to error handler
              app.use(function(req, res, next) {
              next(createError(404));
              });
        • 中间件的参数

          • req : 全称: request 表示请求
          • res : 全称: response 表示响应
          • next: 表示request和response之间的连接 , 相当于桥梁的作用
            • next如果断开,那么请求和响应就会中断 next( false )
        • 中间件要想调用,必须通过app的use方法来调用

    1. 路由中间件
      • 路由中间件人家是以模块化的形式使用
    1. ejs语法学习
      • 注意: ejs语法符号是不能换行的
      • 非转义输出 <%- %> 可以解析xml类型数据
      • 转义输出 <%= %> 可以解析普通类型数据
      • 流程控制 <% %>
        • if条件语句
        • 循环语句
  • EJS的常用标签
    -a. <% %> 流程控制标签
    -b. <%= %> 输出标签(原文输出HTML标签)
    -c. <%- %>输出标签(HTML会被浏览器解析)
    -d.<%# %>注释标签
    -e.% 对标记进行转义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值