Javascript 在URL中使用动态参数表示路由
首先,我是Node的初学者,所以我的问题肯定是基本的。所以,我通过一个网站学习Node,我被一个one Express exercice阻止了。我需要创建一个路由,该路由接受URL路径中的动态参数,并用适当作者的引号(代码中的对象见下文)响应。 js如下所示: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
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(引用)。。。谢谢索斯洛普!