Nodejs API 参数传递和控制台记录参数


var express = require('express');
var app = express();
app.get('/products/productList/:id', (res, req) => {
   console.log("product Id - " + req.params.id);
});

这段代码有什么问题?我该怎么做才能避免以下错误

TypeError: Cannot read property 'id' of undefined
at app.get (E:ProjectsCraiglisttrialapp.js:46:46)
at Layer.handle [as handle_request] (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterlayer.js:95:5)
at next (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterroute.js:137:13)
at Route.dispatch (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterroute.js:112:3)
at Layer.handle [as handle_request] (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterlayer.js:95:5)
at E:ProjectsCraiglisttrialnode_modulesexpresslibrouterindex.js:281:22
at param (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterindex.js:354:14)
at param (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterindex.js:365:14)
at Function.process_params (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterindex.js:410:3)
at next (E:ProjectsCraiglisttrialnode_modulesexpresslibrouterindex.js:275:10)
(res, req)

您更改了函数参数的顺序:)

请求是第一个参数,响应是第二个参数。

试试这个:

app.get('/products/productList/:id', (req, res) => {
   console.log("product Id - " + req.params.id);
});

确保您已required body-parser .并使用bodyParser.urlencoded.

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));

这应该在.get路由定义之前。

你必须在之前做npm install body-parser

最新更新