jen*_*poo 6 parameters syntax url-parameters node.js express
我是快速框架的新手.我在快速API参考中找不到application.post()方法的文档.有人可以提供我可以在函数中放入的所有可能参数的一些示例吗?我用以下示例阅读了几个网站,第一个参数是什么意思?
我知道第二个参数是回调函数,但我们究竟在第一个参数中添加了什么?
app.post('/', function(req, res){
Run Code Online (Sandbox Code Playgroud)此外,假设我们希望用户以特定格式发布(向我们的服务器发送数据)ID号([{id:134123,url:www.qwer.com},{id:131211,url:www.asdf. COM}]).然后,我们想要提取ID并从我们服务器的某个位置检索那些ID的数据.我们如何编写app.post方法,允许我们操作对象数组的输入,这样我们只使用这些对象的ID(键)来检索必要的信息,而不管对象中的其他键.鉴于任务的描述,我们是否必须使用app.get()方法?如果是这样,我们将如何编写app.get()函数?
非常感谢您的投入.
1. app.get('/', function(req, res){
这是告诉快递监听请求/,并运行功能,当它看到一个.
第一个参数是匹配的模式.有时一个像'/'或的文字URL片段'/privacy',你也可以做如下所示的替换.必要时,按照说明您也可以匹配正则表达式在这里.
Express的所有内部部件都遵循该function(req, res, next)模式.传入的请求从中间件链的顶部开始(例如bodyParser)并传递,直到某些内容发送响应,或者表达到链的末尾和404.
你通常把你app.router放在链子的底部.一旦快递到达那里它开始匹配对所有的请求app.get('path'...,app.post('path'...等等,它们被设置顺序.
变量替换:
// this would match:
// /questions/18087696/express-framework-app-post-and-app-get
app.get('/questions/:id/:slug', function(req, res, next){
db.fetch(req.params.id, function(err, question){
console.log('Fetched question: '+req.params.slug');
res.locals.question = question;
res.render('question-view');
});
});
Run Code Online (Sandbox Code Playgroud)
next():
如果您定义了处理函数,function(req, res, next){}可以调用next()yield,将请求传递回中间件链.你可以这样做,例如一个catchall路线:
app.all('*', function(req, res, next){
if(req.secure !== true) {
res.redirect('https://'+req.host+req.originalUrl);
} else {
next();
};
});
Run Code Online (Sandbox Code Playgroud)
再次,订单很重要,如果您希望它在那些之前运行,您必须将其置于其他路由功能之上.
我之前没有张过json,但@ PeterLyon的解决方案对我来说很好.
TJ app.VERB(path, [callback...], callback在快速文档中烦人地记录了这一点,因此请搜索明确的文档.我不会在这里复制/粘贴它们.这是他说的不友好的方式app.get,app.post,app.put,等等都具有相同的函数签名,还有这些方法从HTTP每个支持的方法之一.
要获取发布的JSON数据,请使用bodyParser中间件:
app.post('/yourPath', express.bodyParser(), function (req, res) {
//req.body is your array of objects now:
// [{id:134123, url:'www.qwer.com'},{id:131211,url:'www.asdf.com'}]
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21628 次 |
| 最近记录: |