zoukankan      html  css  js  c++  java
  • 请求与上传文件,Session简介,Restful API,Nodemon

    file

    作者 | Jeskson

    来源 | 达达前端小酒馆

    请求与上传文件

    GET请求和POST请求

    const express = require('express');
    
    const app = express();
    
    app.set('view', 'pug');
    
    app.get('/', function(req,res){
     // 输出响应消息
     req.send('hello')
    });
    
    app.get('/users/:gender', function(req,res){
     // 获取路由参数
     let gender = req.params.gender;
     // 获取url参数
     let name = req.query.name;
     // 输出响应
     res.send('gender=' gender ',name=' name);
    });
    // 启动HTTP服务器
    app.listen(8080, function(){
     console.log('express')
    });
    

    POST请求借助body-parser模板引擎以及req.body()函数得到参数。

    const express = require('express');
    
    const bodyParser = require('body-parser');
    
    // 创建express程序
    const app = express();
    
    // 配置视图模板
    app.set('view engine', 'pug');
    
    // 配置post
    app.use(bodyParser.urlencoded({
     extended: true
    });
    
    app.get('/create', function(req, res){
     res.render('create.pug');
    });
    
    app.post('/create', function(req,res){
    // 获取用户输出表单消息
    let name =  req.body.name
    let pswd = req.body.password;
    res.send('name=' name ",pswd=" pswd);
    });
    app.listen(8080, function(){
     console.log('express');
    });
    

    上传文件

    用multer中间件进行上传文件:

    const express = require('express');
    
    const bodyParser = require('body-parser');
    
    const multer = require('multer');
    
    const app = express();
    
    app.set('view', 'pug');
    
    app.use(bodyParser.urlencoded({
     extended:true
    }));
    
    const upload = multer({
     dest: 'uploads/'
    });
    
    app.get('/create', function(req, res){
     res.render('create.pug');
    });
    
    app.post('/create', function(req,res){
    // 获取用户输出表单信息
    let name = req.body.name;
    let pswd = req.body.password;
    res.send('name ='   name   ",pswd=" pswd);
    });
    
    app.get('/upload', function(req, res){
     res.render('upload.pug');
    });
    
    app.post('/upload', upload.single('photo'), function(req,res){
    // 获取上传文件信息
    let file = req.file;
    res.send(file);
    });
    // 启动http服务器
    app.listen(8080,function(){
     console.log();
    });
    
    node server.js
    

    session简介

    服务器会为浏览器创建一个会话对象,一个浏览器只能有一个session。session是这样的,需要保持用户数据时,服务器程序可以把用户数据存储到浏览器的session中,当用户使用浏览器访问其他程序,可以从session中取出数据。

    session的使用:

    npm install express-session
    
    var session = require("express-session");
    
    app.use(session({
    secret: 'keyboard cat',
    resave: true,
    saveUninitialized: true
    }))
    

    cookie和session的区别:

    cookie是将用户的数据写给用户的浏览器,在浏览器端保持状态数据,当访问服务器时,传输数据量大,而负担大,用户可能修改cookie信息,导致服务器不安全。

    session是把用户的数据写到用户的session,不同的用户用不同的session_id识别,将session_id保持在客户端cookide或是在本地。当发送请求时,附带将session_id的cookie信息,用来区分哪个用户的数据。

    restful api的简介

    REST基本架构:

    restfull api,创建一个json数据资源文件。

    var express = require('express');
    var app = express();
    var fs = require("fs");
    
    app.get('/listUsers", function(req,res){
    fs.readFile(dirname   '/'   "users.json", "utf8" ,function(err,data){
     console.log(data);
     res.end(data);
     });
    })
    
    var server = app.listen(8081,function(){
    var host = server.address().address
    var port = server.address().port
    
    console.log();
    })
    
    node server.js
    

    Nodemon

    nodemon来监视node.js应用程序的更改和自动重启服务。

    npm install -g nodemon

    npm install --save-dev nodemon

    nodemon常用命令:

    nodemon -h 或 nodemon --help
    使用帮助

    nodemon --watch path

    监视当前的工作路径

    nodemon --ignore

    忽视一些文件被监视

    rs

    手动启动系统

    ❤️ 不要忘记留下你学习的脚印 [点赞 收藏 评论]

    作者Info:

    【作者】:Jeskson
    【原创公众号】:达达前端小酒馆。
    【福利】:公众号回复 “资料” 送自学资料大礼包(进群分享,想要啥就说哈,看我有没有)!
    【转载说明】:转载请说明出处,谢谢合作!~

    大前端开发,定位前端开发技术栈博客,PHP后台知识点,web全栈技术领域,数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。谢谢支持,承蒙厚爱!!!


    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


    请点赞!因为你们的赞同/鼓励是我写作的最大动力!

    欢迎关注达达的CSDN!

    这是一个有质量,有态度的博客

    前端技术栈

  • 相关阅读:
    拦截器接口(IActionFilter,IExceptionFilter,IResultFilter,IAuthorizationFilter)
    Linq学习
    keycode值大全
    C#使用Cookie方法
    领域驱动设计学习
    mvc3 razor语法学习
    O/R Mapping 阻抗失衡
    文档格式批量转换(doc,txt,pdf等)
    统计sql语句
    如何确定文件编码格式的方法??
  • 原文地址:https://www.cnblogs.com/dashucoding/p/12178568.html
Copyright © 2011-2022 走看看