Node.js从URL中解析变量

Node.js从URL中解析变量

1.URL解析方法

在此之前,我们需要知道url模块的一个内置方法,parse,这个方法是用来将一个URL字符串解析成一个对象,方便我们来提取其中的参数

vue 复制代码
const server = http.createServer((request,response) => {
        console.log(request.url)
        console.log(url.parse(request.url,true));
        const pathName = request.url;
        const chatset = {'Content-type':'text/html;charset=utf-8'}

这里query的输出是node.js故意设计的,并不影响我们访问属性,出现Object: null prototype是因为parse方法会把id解析成一个无原型的对象,没有原型的对象就是没有proto等原型链,不会污染全局对象原型

2.获取属性

  • 这个对象中,我们需要知道路径和参数,组合在一起就能找到我们想要的产品详情了
vue 复制代码
        const {query,pathname} = url.parse(request.url,true);
  • 之后我们获取ID,替换一下模板就可以了
js 复制代码
       //产品页
        } else if(pathName === '/product'){
            response.writeHead(200,{'content-type':'text/html'});
            const productId = dataObj[query.id];
            const output = replaceTemplate(tempProduct,product)
            response.end(output);
  • 但是这个点击返回是没有用的,我们修改一下模板
js 复制代码
<body>
    <div class="container">
        <h1>🌽 节点农场 🥦</h1>
        <figure class="product">
            <div class="product__organic {%NOT_ORGANIC%}">
                <h5>有机</h5>
            </div>
            <a href="/overview" class="product__back">
                <span class="emoji-left">👈</span>返回
            </a>
            <div class="product__hero">
                <span class="product__emoji product__emoji--1">{%IMAGE%}</span>
                <span class="product__emoji product__emoji--2">{%IMAGE%}</span>
                <span class="product__emoji product__emoji--3">{%IMAGE%}</span>
                <span class="product__emoji product__emoji--4">{%IMAGE%}</span>
                <span class="product__emoji product__emoji--5">{%IMAGE%}</span>

这样就实现了通过解析URL将id传入然后显示产品详情页了;

相关推荐
wno70416 小时前
node.js中使用jquery
前端·node.js·jquery
damoluomu1 天前
Node 的 Headless 出厂没有前台,Java 的 Headless 是从门户里长出来的
java·开发语言·node.js
Dumbness1 天前
一个手机号验证码登录接口的五个坑:无限发码、无限试码,传个数字就让 Express 进程退出
node.js·express
怒放的生命19911 天前
本地用 pnpm 省磁盘,团队继续用 npm:极简实践
前端·npm·node.js
Hone2 天前
我把「自动发文章到掘金」做成了一个 Agent 技能:juejin-skills
node.js·ai编程·前端工程化
Dumbness3 天前
二十行手写的 SKILL.md 头部解析,遇到 YAML 的折叠写法、单引号和嵌套键就读错:和 js-yaml 逐条对照
node.js·ai编程
只睡四小时3 天前
MCP 弃用 SSE?Node 分帧漏 81.7% 事件
node.js·webassembly·实时通信·mcp·streamable http
hey you~4 天前
个体户门店办理400电话,如何对接订单系统实现来电弹窗
node.js·webhook·400电话·门店数字化·来电弹窗·订单系统对接
YIAN5 天前
RAG 学到最后,我真正学会的不是“检索”,而是让系统知道自己缺什么
langchain·node.js·llm