【发布时间】: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作为一个模块导出。到目前为止,它运行正常,直到我无法提取查询变量名或其值为止。