控制台日志URL routes / index.js中的参数

时间:2017-06-22 00:10:21

标签: javascript express console.log

我有以下网址:

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 - -

我错过了什么吗?

谢谢!

3 个答案:

答案 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)

  1. 在route.get函数中移动console.log()。
  2. 即使您必须移动console.log();已经在你的路由器函数中你声明了一个不同的变量var url_param,所以他们没有相同的引用。
  3. 为什么它不能在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