簡體   English   中英

無法訪問expressjs router.delete中的parms

[英]unable to access parms in expressjs router.delete

這是我的代碼片段,其中我使用了Express路由器和Mongoose模型。

我無法訪問id parm。

 router.delete('/task/:id', function (req, res) { Task.remove({ did: req.parms.id }, (err) => { if (err) { res.send(err); } }); }); 

這是我收到的錯誤

TypeError:無法在Layer.handle的F:\\ NS \\ routes \\ tasks.js:11:33讀取未定義的屬性'id'[作為handle_request](F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ layer.js :95:5)在Route.dispatch(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ route.js的下一個(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ route.js:131:13) :112:3)在Layer.handle [作為handle_request](F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)在F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index .para:(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:349:14.js:277:22)at param(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js: 365:14)在Function.process_params(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:410:3)下一個(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js: 271:10)位於路由器(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:F. \\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:176:3): 46:12)位於trim.prefix(F:\\ NS \\ node_modules \\ expre)的Layer.handle [作為handle_request](F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5) ss \\ lib \\ router \\ index.js:312:13)在F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:280:7在Function.process_params(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:330:12)(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:271:10)在F:\\ NS \\ node_modules \\ express-validator \\ lib \\ express_validator .js:291:5在Layer.handle [作為handle_request](F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)在trim_prefix(F:\\ NS \\ node_modules \\ express \\ lib \\在F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index.js:280:7在Function.process_params(F:\\ NS \\ node_modules \\ express \\ lib \\ router \\ index下的router \\ index.js:312:13) .js:330:12)

訪問路由參數(即params時,該對象不是parms 由於parms始終是undefined您將遇到此問題,因為您試圖訪問無法執行的undefined屬性。

router.delete('/task/:id', (req, res) => {
    Task.remove({ did: req.params.id }, (err) => {
        if (err) 
            return res.send(err);
    });
});

您可能會在運行代碼時看到此消息,但不贊成使用Model.remove()。 相反,我推薦Model。 如果將來的更新中不再支持deleteOne() ,則不再支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM