Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在URL中使用动态参数表示路由_Javascript_Node.js_Express - Fatal编程技术网

Javascript 在URL中使用动态参数表示路由

Javascript 在URL中使用动态参数表示路由,javascript,node.js,express,Javascript,Node.js,Express,首先,我是Node的初学者,所以我的问题肯定是基本的。所以,我通过一个网站学习Node,我被一个one Express exercice阻止了。我需要创建一个路由,该路由接受URL路径中的动态参数,并用适当作者的引号(代码中的对象见下文)响应。 js如下所示: var express = require('express'); var app = express(); var quotes = { 'einstein': 'Life is like riding a bicycle. To

首先,我是Node的初学者,所以我的问题肯定是基本的。所以,我通过一个网站学习Node,我被一个one Express exercice阻止了。我需要创建一个路由,该路由接受URL路径中的动态参数,并用适当作者的引号(代码中的对象见下文)响应。 js如下所示:

var express = require('express');
var app = express();

var quotes = {
  'einstein': 'Life is like riding a bicycle. To keep your balance you must keep moving',
  'berners-lee': 'The Web does not just connect machines, it connects people',
  'crockford': 'The good thing about reinventing the wheel is that you can get a round one',
  'hofstadter': 'Which statement seems more true: (1) I have a brain. (2) I am a brain.'
};

app.get('/quotes/:name', function(request, response){
  response.send(request.params.name); /*And i'm blocked here*/
});
app.listen(8080);

对于您被阻止的线路,请尝试以下操作:

response.send(quotes[request.params.name]);

这取决于
:name
是否正确,因此您可能需要先用
object.hasOwnProperty()
检查
quotes
对象中是否存在该名称。

对不起,您需要给我更多的信息。问题到底是什么,你在那里被阻止是什么意思?问题是显然我没有在回复中发送quoute。发送函数好吧,这是有道理的。您只是在响应中发送参数
:name
的值……您的问题与节点无关,它是基本的JavaScript<代码>引用[request.params.name]。是的,Ben,我也尝试过引用[request.params.name]和quotes.request.params.name,甚至引用了[“request.params.name”]但它不起作用似乎不起作用,可能是浏览器出现问题,我要尝试重新启动练习,谁知道呢;]这是我放入我的
app.js
并运行的代码,对我来说效果很好。似乎是浏览器,只是最后一个问题,现在他们要求我关闭响应和响应。send(quotes[request.params.name]).end();似乎不让他们满意-尝试在另一行中执行
response.end()
。好吧,我发现(不是真的使用了提示,但谁在乎)是response.end(引用)。。。谢谢索斯洛普!