node.js 框架

9 篇文章 0 订阅

 1. express

  • 安装npm i express -S

  • 1:引入express第三方对象

  • 2:构建一个服务器对象

  • 3:开启服务器监听端口

  • 4:处理响应

  • 在express中,保留了原生http的相关属性和函数

  • // 构建一个服务器对象
    const express = require('express');
    let server = express();
    
    
    // 开启服务器监听端口
    server.listen(8888,()=>{
        console.log('run....');
    });
    
    //处理响应
    server.use('/lb',(req,res,next)=>{
        console.log('萝卜');
        next();
    })
    server.use('/baici',(req,res,next)=>{
        console.log('白菜');
        next();
    })
    

     

2.中间件类别

  • 应用级中间件 app.use(事fn)

  • 路由级中间件

    • 1:获取路径级中间件

    • 2:配置路由

    • 3:加入到应用程序控制中app.use(router);

  • 内置中间件

    • 处理一些静态资源文件的返回(设置将某个目录下的资源文件向外暴露)

      • 当url匹配上我设置的目录下的子文件后,自动返回该文件

      • 加入到应用程序控制中app.use(内置中间件);

  • 第三方中间件

    • 更方便的处理cookie/session,简易的解析post请求体数据

    • 在npm上下载并使用

    • 加入到应用程序控制中app.use(第三方中间件);

  • 错误处理中间件

    • 在express中统一处理错误next(err)

3. 路由中间件

使用步骤

  • 1:获取路由中间件对象 let router = express.Router();

  • 2:配置路由规则 router.请求方式(URL,fn事)

    • fn中参数有req,res,next

  • 3:将router加入到应用app.use(router)

  • let express = require("express");
    
    let server = express();
    //获取中间路由对象
    let router = express.Router();
    
    router.get('/login',(req,resp)=>{
        resp.json({"jay":"杰伦","rouse":"金妮"})
    }).get('/register',(req,resp)=>{
        resp.end("register page");
    });
    
    server.use(router);
    server.listen(8080,()=>{
        console.log('run...');
    })
    

     

 4. res的扩展函数

res.download('./xxx.txt') // 下载文件
res.json({})  // 响应json对象
res.jsonp(数据) // 配合jsonp 
res.redirect()  //  重定向 
res.send()    // 发送字符串数据
res.sendFile() // 显示一个文件
res.sendStatus() // 响应状态码

5. art-template模板引擎在nodejs中的处理

    1. 下载express-art-template art-template
    2.设置模板的路径  app.set('views',path.join(__dirname,'views'));
    3. 设置默认渲染模板引擎  app.set('view engine','art');
    4.注册一个模板引擎 使express兼容art-template模板引擎   app.engine('art', require('express-art-template'));
    5. res.render(文件名,数据对象);
    6. 默认在当前app.js同级的views目录查找

const template = require('art-template');
const express = require('express');
const path = require('path')
let app = express();
app.engine('.art', require('express-art-template'));

app.set('views',path.join(__dirname,'views'));
app.set('view engine','.art')
router.get("/",(req,res)=>{
    res.render('index.art',{heros:[{name:"小钟"},{name:"小刘"}]})
})
app.use(router);
app.listen(8080,()=>{
    console.log('run..');
})

 

6. 内置中间件(处理静态资源)

  • 1: 创建对象 let static = express.static('./public');

  • 2: 配置到中间件中 app.use(static);

    //启动静态服务资源
    app.use('/public',express.static('js'));

     

7.第三方中间件(post请求体的获取)

 

const path = require('path');
const express = require('express');
const formidable = require('formidable');
const router = express.Router();
const app = express();
router.post('/add',(req,res,next)=>{
    let form = new formidable.IncomingForm();
    //修改上传目录
    form.uploadDir = path.join(__dirname,'public','imgs');
    //保持原有后缀名
    form.keepExtensions = true;

    form.parse(req, function(err, fields, files) {
      let nickname = fields.nickName;
      let filename = path.parse(files.icon.path).base;
      let img = 'imgs/'+filename;
      heros.list.push({'name':nickname,'img':img})
        res.redirect('/')
    });
}).

8. nodemon

  • 修改代码自动重启

  • 安装全局命令行工具 npm i -g nodemon

  • 进入到指定目录命令行 nodemon ./xxx.js

  • 手动触发重启,在命令行输入 rs回车

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值