学堂 学堂 学堂公众号手机端

Node自带模块URL处理

lewis 1年前 (2024-04-26) 阅读数 16 #技术


URL相关操作​​获取URL请求路径​​​​解析表单参数传输的参数​​​​不同的请求路径返回不同的值,或者访问不同的文件​​​​underscore模板引擎,读取html文档,并将数据注入到读取的html’文档中​​获取URL请求路径request:事件函数,需要接受两个参数request:请求对象:请求对象可以用来获取客户端的一些请求信息,例如请求路径response:响应对象:响应对象可以用来给客户端发送响应消息
var http = require('http')
var server = http.createServer();

server.on("request", function (request,) {
console.log("收到客户端的请求,请求的路径" + request.url);
})

server.listen(3000, function () {
console.log('127.0.0.1:3000 服务器启动成功');
})

浏览器输入地址端口号:

127.0.0.1:3000


127.0.0.1:3000/name

127.0.0.1:3000/login?name=jack&password=123456

解析表单参数传输的参数

但是存在一些方法快要被弃用;

var http = require("http");
var url = require('url');
var querystring = require('querystring');

var server = http.createServer();

server.on('request', function (req,) {
// 获取请求路径以及整个表单数据
console.log(req.url);
// 将客户端的请求解析为对象
var realpath = url.parse(req.url);
// 输出对象
console.log(realpath);
// 输出对象的路径名称(字符串)
console.log(realpath.pathname);
// 输出表单请求的信息(字符串)
console.log(realpath.query);
// 将表单请求信息转为对象
var message = querystring.parse(realpath.query);
// 输出表单请求对象
console.log(message);
// 输出表单的name项
console.log(message.name);


})
server.listen(3000, function () {
console.log('127.0.0.1:3000 服务器启动成功');
})

127.0.0.1:3000/login?name=jack&password=123456

不同的请求路径返回不同的值,或者访问不同的文件
var http = require('http')
var server = http.createServer();

server.on("request", function (request,) {

/**
* 根据不同的请求路径发送不同的响应结果
* 1.获取请求路径
* 2.判断路径处理响应
*/
var url = request.url;
if (url == '/') {
response.end('index page');
} else if (url == '/login') {
response.end('login page');
} else if (url == '/reg') {
response.end('register page');
} else {
response.end('404 not found');
}
})
server.listen(3000, function () {
console.log('127.0.0.1:3000 服务器启动成功');
})
underscore模板引擎,读取html文档,并将数据注入到读取的html’文档中
var http = require('http');
var server = http.createServer();
var path = require('path');
var fs = require('fs');
var _ = require('underscore')
server.on('request', function (request,) {
var url = request.url;
if (url == '/') {
fs.readFile(path.join(__dirname, './index.html'), 'utf8', function (err,) {
if (err) {
return respon.end(err.message);
}
var compiled = _.template(data);
var htmlStr = compiled({
title: '吴一一',
arr: [
{ name: '五一' },
{ name: '吴一' },
{ name: '唯一' },
]
})
respon.end(htmlStr)
})
}
})
server.listen(3000, function () {
console.log('server is runing at port 3000');
})

从服务端获取http页面,然后通过服务器渲染页面,在传输到客户端。
index.html

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>

<body>
<h1>
<%= title%>
</h1>
<ul>
<% arr.forEach(function(item){ %>
<li>
<%= item.name%>
</li>

<%})%>
</ul>
</body>

</html>


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门