我有一个网址,我正在尝试获取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
});
Run Code Online (Sandbox Code Playgroud)
我正在做这样的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;
});
Run Code Online (Sandbox Code Playgroud)
我正在使用
app.use(express.json());
app.use(express.urlencoded());
Run Code Online (Sandbox Code Playgroud)
而不是身体解析器
gre*_*eke 36
您的代码按预期工作:ajax调用指定url: '/test/:uid'放入:uid的内容req.params.uid.
尝试别的东西送:url: '/test/123'和req.params.uid将包含123
这是一个有效的例子。我将从头开始逐步说明:
express myproject
cd myproject
npm install
Run Code Online (Sandbox Code Playgroud)
打开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);
Run Code Online (Sandbox Code Playgroud)
现在,打开一个新终端,确保您位于myproject目录中,然后输入:
node app.js
Run Code Online (Sandbox Code Playgroud)
现在您可以http://localhost:3000/test/45在本地计算机上访问,您应该看到:
Displaying information for uid 45
Run Code Online (Sandbox Code Playgroud)
如果您不是从本地计算机访问的,请确保更改上面的URL以匹配您的节点应用程序正在运行的任何服务器。
另外,这只是一个简单的例子。通过将路由放置在类似于Express应用程序新安装中的routes目录示例设置文件的文件中,最好组织所有内容。你可以找到像在网络上的这种更详细的例子这一个和这一个。另外,我在NodeJS in Action一书中看到了关于在Node中组织/重用代码的最佳解释之一。
| 归档时间: |
|
| 查看次数: |
38924 次 |
| 最近记录: |