zoukankan      html  css  js  c++  java
  • Node.js笔记(0001)---connect模块

    首先来看这一部分代码

     1 /**
     2  * Created by bsn on 14-7-1.
     3  */
     4 var connect = require('connect');
     5 
     6 var app = connect();
     7 function hello(req, res, next) {
     8     console.log(req.url);
     9     res.end('hello bsn');
    10     next();
    11 }
    12 
    13 function helloAgain(req, res) {
    14     console.log('hello again');
    15     res.end('hello again');
    16 }
    17 
    18 app.use(hello)
    19     .listen(3000);

    如果请求http://localhost:3000

    这一部分代码的输出是什么(控制台和浏览器中)?

    首先想到的第一个答案可能是

    浏览器:hello bsnhello again

    控制台:/

    然而实际上输出的是:

    浏览器:hello bsn

    控制台:/

               /favicon.ico


    为什么?

    关于控制台的输出结果是因为请求了两次,除了我们手动触发的那一次,还包括浏览器自动去请求图标的那一次,这一点自然好理解

    那关于浏览器为什么输出的不是hello bsnhello again呢?

    因为在第一次请求的时候,在hello方法处理中使用了res.end(...);即resonse已经结束,后面的响应就失效,如果hello方法是这样写的:

    1 function hello(req, res, next) {
    2     console.log(req.url);
    3     res.write('hello bsn');
    4     next();
    5 }

    那结果就是浏览器输出hello bsnhello again

    关于这个模块自己知识刚开始接触,后续自己也会深入去学习

  • 相关阅读:
    Python3学习笔记27-ConfigParser模块
    Python3学习笔记26-unittest模块
    HTML学习笔记09-列表
    HTML学习笔记08-表格
    [hdu1402]A * B Problem Plus(FFT模板题)
    [bzoj2179]FFT快速傅立叶
    [bzoj3884]上帝与集合的正确用法
    [ural1132]Square Root(cipolla算法)
    MD5算法的c++实现
    DES算法的c++实现
  • 原文地址:https://www.cnblogs.com/bsn-huang/p/3886741.html
Copyright © 2011-2022 走看看