我有以下网址:
http://localhost:3000/?url=test
在我的routes / index.js中,我非常了解url参数并尝试console.log:
var express = require('express');
var router = express.Router();
var url_param;
router.get('/:url', function (req, res) {
var url_param = req.params.url;
});
var url;
var url = url_param
console.log(url);
然而,它并没有记录任何东西。在我的终端中,我得到它正确执行GET功能:
GET /?url=test 304 4.169 ms - -
我错过了什么吗?
谢谢!
答案 0 :(得分:0)
(我猜这会起作用。)尝试在你的函数中写入console.log。像
router.get('/:url', function (req, res) {
var url_param = req.params.url;
console.log(/* your code */ );
});
答案 1 :(得分:0)
以下是如何存储该值并将其用于其他地方:
var express = require('express');
var router = express.Router();
var url;
// http://localhost:3000/url
router.get('/url', function(req, res) {
res.send("the stored url is " + url);
});
// http://localhost:3000/?url=x
router.get('/:url', function(req, res) {
url = req.params.url;
console.log(url);
res.send("url stored");
});
答案 2 :(得分:0)
为什么它不能在route.get函数之外工作?
当您运行'node thisfile.js'时,脚本上的所有内容都将被处理,但是router.get函数将等待接收只有在访问url后才会触发的事件。
因此,如果没有router.get函数接收事件url_param仍未定义。因此,要获取网址参数,您需要访问它匹配的网址。
var express = require('express');
var router = express.Router();
var url_param;
router.get('/:url', function (req, res) {
url_param = req.params.url;
console.log(url_param);//TO BE HONEST This will work
});
console.log(url_param);//TO BE HONEST THIS WOULDNT WORK