Joh*_*ams 7 javascript node.js express
我是Node/Express的新手.我看到GET params可以这样捕获:
app.get('/log/:name', api.logfunc);
Run Code Online (Sandbox Code Playgroud)
POST如此:
app.post('/log', ... (在req.body中可用的表单变量.)
我知道app.all,但是有一种方法可以在使用app.all时获得GET和POST的所有变量吗?(我在PHP中已经习惯了$ _REQUEST!:)
谢谢,
ebo*_*man 21
您正在处理三种不同的参数传递方法:
1)路径参数,表示路由器捕获在req.param您的路由中使用冒号前缀组件或正则表达式捕获时.这些可以出现在GET和POST请求中.
2)URL查询字符串参数,req.query如果您使用express.query中间件,将会捕获这些参数.这些也可以出现在GET和POST请求中.
3)身体参数,req.body如果您使用express.bodyParser中间件将被捕获.这些只会出现在具有Content-Type"x-www-form-urlencoded"的POST请求中.
所以你需要做的是将所有三个对象(如果存在)合并为一个.没有本地Object方法可以做到这一点,但有很多流行的解决方法.例如,underscore.js库定义了一个extend允许您编写的函数
req.params=_.extend(req.params || {}, req.query || {}, req.body || {}).
Run Code Online (Sandbox Code Playgroud)
如果您不想使用库并希望自己推广扩展对象,请查看此博客文章.
| 归档时间: |
|
| 查看次数: |
10043 次 |
| 最近记录: |