我有以下(exact from video):
var express = require('express'),
app = express();
app.get('/name/:name', function (req, res) {
res.send('Your name is ' + res.params.name);
});
app.listen(3000);
但是,如果我转到http://localhost:3000/name/
错误:无法获取/命名/
如果我转到http://localhost:3000/name/Leon
错误:
TypeError: Cannot read property 'name' of undefined
at /Users/leongaban/Projects/Node/expressApp/server3.js:5:39
at Layer.handle [as handle_request] (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/layer.js:82:5)
at next (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/route.js:100:13)
at Route.dispatch (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/route.js:81:3)
at Layer.handle [as handle_request] (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/layer.js:82:5)
at /Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/index.js:235:24
at param (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/index.js:332:14)
at param (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/index.js:348:14)
at Function.proto.process_params (/Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/index.js:392:3)
at /Users/leongaban/Projects/Node/expressApp/node_modules/express/lib/router/index.js:229:12
不确定我错过了什么?
答案 0 :(得分:1)
params
位于req
。使用req.params.name
。
关于无法获取/命名/ ,如果您在路线中指定参数,则该网址的部分将与您的路线不匹配。您必须填充网址的:name
部分才能点击该路线。
答案 1 :(得分:1)
请求对象包含参数而不是响应。想到你对服务器发出请求参数的请求吗?所以Request对象拥有它们
您需要req.params.name