Node.js 多个参数在NodeJS Express中不起作用
我有网址:Node.js 多个参数在NodeJS Express中不起作用,node.js,rest,api,express,Node.js,Rest,Api,Express,我有网址: POST http:/host/core/api/v1/endpoints/create/:name/:description/:address 我正在使用快速NodeJS。此url将使用参数中的属性创建端点。但是使用参数尝试请求时,收到错误: Error: Not Implemented at router.use (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\controllers\a
POST http:/host/core/api/v1/endpoints/create/:name/:description/:address
我正在使用快速NodeJS。此url将使用参数中的属性创建端点。但是使用参数尝试请求时,收到错误:
Error: Not Implemented
at router.use (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\controllers\api.js:517:14)
at Layer.handle [as handle_request] (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:312:13)
at D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:280:7
at Function.process_params (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:330:12)
at next (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:271:10)
at Function.handle (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:176:3)
at router (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:46:12)
at Layer.handle [as handle_request] (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\Study\NodeJS\ProjectEnviromentMonitoring\EnvironmentMonitoring\node_modules\express\lib\router\index.js:312:13)
这是如果成功,JSON将返回:
{
"message": "success",
"statuscode": 200
}
这是我的测试:
POST http://localhost:8082/core/api/v1/endpoints/create/endpoint3/abc/def
更新:获取参数的代码是:
router.route('/endpoints/create/:name/:description/:address').post((req, res) => {
var name = req.params.name;
var description = req.params.description;
var address = req.params.address;
}
为什么不使用req.parameter,这样就可以有一个包含公共字符(“?”和“&”)的完整上下文?例如,您可以简单地执行以下操作:
var host = req.param('host');
var name = req.param('name');
var description = req.param('description');
然后像$VAR_HOST&name=$VAR_name&description=$VAR_description那样访问它,为什么不直接使用req.parameter,这样就可以有一个包含常用字符(“?”和“&”)的完整上下文?例如,您可以简单地执行以下操作:
var host = req.param('host');
var name = req.param('name');
var description = req.param('description');
然后像$VAR_HOST&name=$VAR_name&description=$VAR_description那样访问它。您描述的错误很可能与您将路由器连接到express应用程序的方式有关。您上面发布的代码片段工作正常 下面是一个工作示例
var express = require('express')
var app = express();
var router = express.Router();
router.route('/endpoints/create/:name/:description/:address').post((req, res) => {
var name = req.params.name;
var description = req.params.description;
var address = req.params.address;
console.log({ name: name, desc: description, address: address });
res.json({
"message": "success",
"statuscode": 200
});
});
app.use(router);
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});
测试:
curl-X POSThttp://localhost:3000/endpoints/create/test/hello/world
您描述的错误很可能与您如何将路由器连接到express应用程序有关。您上面发布的代码片段工作正常
下面是一个工作示例
var express = require('express')
var app = express();
var router = express.Router();
router.route('/endpoints/create/:name/:description/:address').post((req, res) => {
var name = req.params.name;
var description = req.params.description;
var address = req.params.address;
console.log({ name: name, desc: description, address: address });
res.json({
"message": "success",
"statuscode": 200
});
});
app.use(router);
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});
测试:
curl-X POSThttp://localhost:3000/endpoints/create/test/hello/world
我想你需要分享你的一些代码,如果你想让任何人有机会给你提供建议…我已经更新了我的代码以获取参数。我想你需要分享你的一些代码,如果您想让任何人有机会给您提供建议…我已经更新了我的代码以获取参数。我正在使用req.params.blarblar获取参数。我正在使用req.params.blarblar获取参数