【问题标题】:NodeJS - WITHOUT EXPRESS - how to get query-params?NodeJS - 没有表达 - 如何获取查询参数?
【发布时间】:2019-05-04 21:38:40
【问题描述】:

我通过localhost:3000?paramname=12345调用我的应用程序

在 NodeJS 中我有

server.js

var http = require('http');
var app = require('./app');

var server = http.createServer(app.handleRequest).listen(3000, function ()  {
    console.log('Server running on Port 3000');
});

还有我的 app.js

var url = require('url');
var path = require('path');

function handleRequest(req, res) {
    // parse url and extract URL path
    var pathname = url.parse(req.url).pathname;  

    // file extention from url
    const ext = path.extname(pathname); 

    console.log(req.url); 

});

现在console.log(req.url) 将输出我/?paramname=12345

但我怎么才能只得到 var-name paramname 或它的值 12345 ??

当我尝试我找到的所有东西时,我只得到undefined 或脚本因为没有这样的功能而刹车。

【问题讨论】:

  • 你需要解析传入的请求。尝试像 body-parser 之类的东西
  • 我需要明确的body-parser 吗?或者它也会以某种方式做到url.parse(req.url)? ..我的意思是,当我做console.log(url.parse(req.url).query)时,我得到paramname=12345
  • 我正在检查,但是您的 app.js 应该使用 module.exports 导出 handleRequest 函数
  • 哦,抱歉,我没有复制它 :) .. 当然它会将handleRequest 作为一个模块导出。到目前为止,它运行正常,直到我无法提取查询变量名或其值为止。

标签: node.js req


【解决方案1】:

您可以使用内置的querystring 模块:

const querystring = require('querystring');

...
const parsed = url.parse(req.url);
const query  = querystring.parse(parsed.query);

【讨论】:

    【解决方案2】:

    您可以使用 'url' 模块在纯 Nodejs 中获取查询参数(无需 express) 下面是一些代码sn-ps-

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 2021-12-23
      • 1970-01-01
      • 2015-11-28
      • 2014-12-26
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      相关资源
      最近更新 更多