Aru*_*3x3 4 node.js express mongojs mean-stack
此错误是根据定义的路由/函数的顺序发生的,我还搜索了此错误发生的不同原因,但没有遇到此特定原因
//Save Task
router.get("/tasks/newrec",function(req,res,next){
var newtask={
title:"newtask5",
isdone:"true"
}
db.tasks.save(newtask,function(error,result){
if(error){res.send(error); }
else
{ res.send("success"); }//res.json(result);}
});
});
Run Code Online (Sandbox Code Playgroud)
如果我首先声明这个函数,那么如果我声明为第二个或第三个函数,那么我看不到错误,然后我看到这个错误。我正在使用 node 和 mongojs。
var express=require('express');
var router=express.Router();
var mongojs= require('mongojs');
var db=mongojs('taskdb',['tasks']);
//display all tasks
router.get('/tasks',function(req,res,next){
db.tasks.find(function(err,tasks){
res.json(tasks);
});
});
//To find single record with id
router.get('/tasks/:id',function(req,res,next){
var uid = req.params.id.toString();
db.tasks.findOne({_id:mongojs.ObjectId(uid)},function(err,doc){
res.json(doc);
});
});
//Save Task
router.get("/tasks/newrec",function(req,res,next){
var newtask={
title:"newtask5",
isdone:"true"
}
db.tasks.save(newtask,function(error,result){
if(error){res.send(error); }
else
{ res.send("success"); }//res.json(result);}
});
});
Run Code Online (Sandbox Code Playgroud)
Dav*_*nte 10
可能与路径声明的顺序有关,我有时会遇到它。这些是你的路径:
所有 3 个都是 GET 方法。问题出现是因为某些请求路径在多个路径中匹配。例如, /tasks/something 在第二个中匹配,但在第一个中匹配。甚至 /tasks/newrec,您也认为它与第三个匹配,但它与 3 个路径匹配。并按照您声明的顺序表达路径评估,因此它永远不会进入第三条路径。这就是为什么我认为 express 会引发错误。基本规则是在每个 HTTP 方法之前总是声明更具体的路径。在您的情况下,这将是正确的顺序:
刚好和你做的相反。希望能帮助到你
| 归档时间: |
|
| 查看次数: |
5922 次 |
| 最近记录: |