Body-Parser как параметр пути обработчика маршрутизатора в Express.js? [дублировать]Javascript

Форум по Javascript
Ответить
Anonymous
 Body-Parser как параметр пути обработчика маршрутизатора в Express.js? [дублировать]

Сообщение Anonymous »

Я пытаюсь проанализировать и перестроить какой-то код, написанный кем-то, кто в настоящее время состоит из более старой версии Express.js (4.18.2), в текущую версию Express.js.

Код: Выделить всё

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
const onem2mParser = bodyParser.text(
{
limit: '5mb',
type: 'application/onem2m-resource+xml;application/xml;application/json;application/vnd.onem2m-res+xml;application/vnd.onem2m-res+json'
}
);

app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, X-M2M-RI, X-M2M-RVI, X-M2M-RSC, Accept, X-M2M-Origin, Locale');
res.header('Access-Control-Expose-Headers', 'Origin, X-Requested-With, Content-Type, X-M2M-RI, X-M2M-RVI, X-M2M-RSC, Accept, X-M2M-Origin, Locale');
(req.method == 'OPTIONS') ? res.sendStatus(200) : next();
});

# Where The error occurs
app.post(onem2mParser, function (request, response) {
...
}

У меня проблемы с App.post () выше, а текущая версия Express.js выбрасывает следующую ошибку:

Код: Выделить всё

ERROR   Uncaught Exception
{
"errorType": "TypeError",
"errorMessage": "path must be a string, array of strings, or regular expression",
"stack": [
"TypeError: path must be a string, array of strings, or regular expression",
"    at pathToRegexp (/var/task/node_modules/path-to-regexp/index.js:69:11)",
"    at new Layer (/var/task/node_modules/express/lib/router/layer.js:45:17)",
"    at Function.route (/var/task/node_modules/express/lib/router/index.js:505:15)",
"    at app. [as get] (/var/task/node_modules/express/lib/application.js:498:30)",
"    at Object. (/var/task/src/get.js:80:5)",
"    at Module._compile (node:internal/modules/cjs/loader:1554:14)",
"    at Object..js (node:internal/modules/cjs/loader:1706:10)",
"    at Module.load (node:internal/modules/cjs/loader:1289:32)",
"    at Function._load (node:internal/modules/cjs/loader:1108:12)",
"    at TracingChannel.traceSync (node:diagnostics_channel:322:14)"
]
}
< /code>
В этой части я использовал анализатор в качестве промежуточного программного обеспечения с помощью CHATGPT, но в другом модуле возникает ошибка, который использует код в этой части.const router = express.Router();
router.use(onem2mParser);
router.post('/', function(req, res) => ...);
app.use('/', router);
< /code>
ERROR   TypeError: ee.on is not a function
at first (/var/task/node_modules/ee-first/index.js:43:10)
at onSocket (/var/task/node_modules/on-finished/index.js:115:16)
at attachFinishedListener (/var/task/node_modules/on-finished/index.js:120:5)
at attachListener (/var/task/node_modules/on-finished/index.js:147:5)
at onFinished (/var/task/node_modules/on-finished/index.js:53:3)
at send (/var/task/node_modules/finalhandler/index.js:314:3)
at /var/task/node_modules/finalhandler/index.js:133:5
at /var/task/node_modules/express/lib/router/index.js:646:15
at next (/var/task/node_modules/express/lib/router/index.js:265:14)
at textParser (/var/task/node_modules/express/node_modules/body-parser/lib/types/text.js:78:7)
< /code>
Finally, I have two questions.
[list]
[*]What does it mean to insert bodyParser
вместо типа строки в параметр path в app.post () ? Путь тогда '/'?
[*] Как исправить код, чтобы хорошо работать с той же логикой в ​​последней версии 4.x express.js?
[/list]

Подробнее здесь: https://stackoverflow.com/questions/795 ... express-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»