我有一个网址,我正在尝试获取ID,但它没有工作req.params或req.query
app.get('/test/:uid', function testfn(req, res, next) {
debug('uid', req.params.uid); // gives :uid
debug('uid', req.query.uid); // gives undefined
});
我正在做像这样的ajax调用
$(document).on('click', 'a.testlink', function(e) {
$.ajax({
type: "GET",
url: '/test/:uid',
success: function(var) {
console.log('success');
},
error: function() {
alert('Error occured');
}
});
return false;
});
我正在使用
app.use(express.json());
app.use(express.urlencoded());
而不是身体解析器
答案 0 :(得分:31)
您的代码按预期工作:ajax
调用指定了url: '/test/:uid'
:uid
req.params.uid
。
尝试发送其他内容:url: '/test/123'
和req.params.uid
将包含123
答案 1 :(得分:3)
这是一个可行的例子。我将从头开始逐步说明:
express myproject
cd myproject
npm install
打开app.js并在文件中的某处添加 - 也许就在行app.get('/test/:uid',test);
var test = function(req,res,next) {
// do whatever logic is needed
res.end('Displaying information for uid ' + req.params.uid);
}
app.get('/test/:uid',test);
现在,打开一个新终端,确保您在myproject目录中并输入:
node app.js
现在您可以在本地计算机上访问http://localhost:3000/test/45
,您应该看到:
Displaying information for uid 45
如果您不是从本地计算机访问,请确保更改上面的URL以匹配您的节点应用程序运行的任何服务器。
此外,这只是一个简单的例子。您可能最好通过在新安装的Express应用程序中将路径放置在类似于routes目录示例设置的文件中来组织所有内容。您可以在网上找到更详细的例子,例如this一个和this一个。此外,在Node中我已经看到的在Node中组织/重用代码的最佳解释之一是在NodeJS in Action中。