node服务器的页面文件respond,Node.js 服务器根据不同的请求做出不同的响应

上一次讲到了怎么解决 HTML 显示乱码的问题。

今天我们添加一个新功能,可以根据不同的链接地址返回不同的页面响应。

启动上次的代码,代码如下:

// 创建一个简单的的 http 服务器程序

// 加载 http 模块

var http = require('http');

// 创建 http 服务对象

var server = http.createServer();

// 监听用户请求事件( request 事件)

// request 对象包含了用户请求报文中的所有内容 ,通过 request 对象可以获取所有用户提交过来后的数据

// response 对象用来向用户响应一些数据,当服务器要向客户端响应数据的时候必须使用 response 对象

server.on('request', function (request, response) {

// 设置 response 返回数据类型与编码格式,否则浏览器会报错

// Content-Type 设置数据类型

response.setHeader('Content-Type', 'text/plain; charset=utf-8');

// 向客户端(浏览器)返回数据

response.write('Hello Word,你好!');

// 返回数据的时候要结束,不然就会一直请求

response.end();

})

// 启动服务

server.listen(8080, function () {

console.log('OK,访问:localhost:8080');

})

会发现,无论在链接后面添加什么参数,页面也总是只显示 Hello Word,你好! 。

0b5d2f88dd6e

怎样才能实现修改地址访问不同的页面呢?在监听用户请求事件中,我们有一个参数 request 。

// 监听用户请求事件( request 事件)

// request 对象包含了用户请求报文中的所有内容 ,通过 request 对象可以获取所有用户提交过来后的数据

// response 对象用来向用户响应一些数据,当服务器要向客户端响应数据的时候必须使用 response 对象

server.on('request', function (request, response) {

...

})

就是上面代码中的第一个参数,它有一个特别的方法可以得到我们输入浏览器中的地址 --- request.url 。可以通过判断地址的不同设置不同的结果。

我们先把监听用户请求事件里面的代码全部删掉,写上新的代码,如下:

server.on('request', function (request, response) {

// 设置 response 返回数据类型与编码格式,否则浏览器会报错

// Content-Type 设置数据类型

response.setHeader('Content-Type', 'text/plain; charset=utf-8');

// 如果链接的路径是 / 或者 /index 时,返回的页面的 index 页面

if (request.url === '/' || request.url === '/index') {

// response.write('这是 index 页面');

// response.end();

// response.end('这是 index 页面'); 上面两句的简写

response.end('这是 index 页面');

}

// 如果链接的路径是 /login 时,返回的页面的 login 页面

else if (request.url === '/login') {

response.end('这是 login 页面');

}

// 如果链接的路径是 /register 时,返回的页面的 register 页面

else if (request.url === '/register') {

response.end('这是 register 页面');

}

// 如果链接的路径都不是上面定义的路径,返回 404 没有此页面

else {

response.end('404,没有找到此页面。');

}

})

这样我们就可以通过不同的路径访问不同的页面了。

当我们访问 localhost:8080/ 和 localhost:8080/index 的时候,是这样的:

0b5d2f88dd6e

访问 localhost:8080/login 就会返回 login 页面:

0b5d2f88dd6e

这是 register 页面:

0b5d2f88dd6e

没有找到对应的页面,就会返回我们刚刚设置好的 404 页面:

0b5d2f88dd6e

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值