zoukankan      html  css  js  c++  java
  • Node.js服务器创建和使用

    1.使用zlib模块对服务器端响应压缩

    //1.1引入zlib模块

    const zlib=require('zlib');

    //1.2 设置内容的压缩形式

    'Content-Encoding': 'gzip'

    //1.3创建gzip压缩

    var gzip=zlib.createGzip();

    //1.4使用读取流读取文件并响应到浏览器

    fs.createReadStream('tmooc.html').pipe(gzip).pipe(res)

    2.express

     基于nodejs平台,快速、开放、极简的web开发框架

     www.expressjs.com.cn 中文官网

     安装express  

        npm  install  express

     创建web服务器

    const express=require('express');//引入express模块

    var app=express(); //创建web服务器

    app.listen(8080); //监听端口

     (1)路由

      浏览器向web服务器发请求,web服务器根据请求的url和请求的方法来作出响应。

      三要素:请求的url,请求的方法,响应(回调函数)

      res  响应的对象

        send()  设置并发送响应的内容,路由中只能使用一次

        sendFile()  响应文件,要求使用绝对路径  __dirname

        redirect()  响应的重定向,跳转到另一个url

      req  请求的对象

        method  请求的方法

        url   请求的url  

        headers   请求的头信息

        query   获取请求的查询字符串形式的数据,格式为对象

        params  获取路由传递的数据

    设置路由中接收数据的名称

    app.get('/shopping/:price', function(req,res){

       req.params  //获取传递的数据,格式为对象

    });

    浏览器传递数据

    http://127.0.0.1:8080/shopping/4999

    获取post请求的数据

    req.on('data', function(mydata){ //通过事件

      mydata.toString()  //格式为查询字符串,需要解析为对象

    });

     get和post请求

      在浏览器地址栏直接输入url,默认就是get请求,传递数据使用查询字符串,浏览记录可能被浏览器缓存。

      post请求需要使用表单提交来完成(现阶段),获取数据使用事件

     

      商品模块 product

        列表   删除      修改

        /product/list   /product/delete  /product/update

      用户模块 user

        列表    删除     修改

        /user/list    /user/delete   /user/update

    3.路由器

     路由在使用的过程中,不同模块下的路由可能出现相同的url; 把同一个模块下的路由放到特定的路由器。

     (1)创建路由器

    //1.路由器是express下的一个功能

    const express=require('express');

    //2.创建路由器对象

    var router=express.Router();

    //3.往路由器中添加路由

    router.get('/list',function(req,res){

      res.send('这是用户列表');

    });

    //4.导出路由器对象

    module.exports=router;

     (2)在web服务器中使用

    //2.1引入路由器模块

    const userRouter=require('./user.js');

    //2.2使用路由器,挂载到特定的url

    app.use('/user',userRouter);

  • 相关阅读:
    Note_Master-Detail Application(iOS template)_01_YJYAppDelegate.h
    iOS 字号转换问题
    iOS--判断App是否第一次安装启动
    iOS--正则表达式
    iOS--APP之间的跳转
    iOS--FMDB的增删改查
    iOS--AFNetworking3.0的使用
    开发一个微笑小程序示例
    HTTP协议整理
    秒杀/抢购系统设计优化
  • 原文地址:https://www.cnblogs.com/sna-ling/p/12521232.html
Copyright © 2011-2022 走看看