您的位置:首页 > Web前端 > Node.js

Node.js笔记(0001)---connect模块

2014-08-02 11:32 465 查看
首先来看这一部分代码

/**
* Created by bsn on 14-7-1.
*/
var connect = require('connect');

var app = connect();
function hello(req, res, next) {
console.log(req.url);
res.end('hello bsn');
next();
}

function helloAgain(req, res) {
console.log('hello again');
res.end('hello again');
}

app.use(hello)
.listen(3000);


如果请求http://localhost:3000

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

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

浏览器:hello bsnhello again

控制台:/

然而实际上输出的是:

浏览器:hello bsn

控制台:/

/favicon.ico

为什么?

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

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

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

function hello(req, res, next) {
console.log(req.url);
res.write('hello bsn');
next();
}


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

关于这个模块自己知识刚开始接触,后续自己也会深入去学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: