Анализатор тела устарел undefined extended: предоставить расширенную опцию - PullRequest
0 голосов
/ 14 октября 2019

Я получаю эту ошибку при попытке запустить мой код и не знаю, как ее решить. Я действительно не знаю кодовую базу, потому что я новичок в этом, поэтому я полностью потерян и не знаю, что делать.

body-parser deprecated undefined extended: provide extended option index.js:20:20
COMMON_CONFIG.mode === "development" false
Listening on port undefined

edit: package.json:

**{
  "name": "audio-guide-backend",
  "version": "0.0.0",
  "main": "index.js",
  "repository": "https://gitlab.com/islandica/audio-guide-backend.git",
  "license": "MIT",
  "private": true,
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "crypto-random-string": "^3.0.1",
    "dotenv": "^8.0.0",
    "ejs": "^2.6.2",
    "express": "^4.17.1",
    "express-session": "^1.16.2",
    "pg": "^7.11.0"
  },
  "devDependencies": {
    "nodemon": "^1.19.1"
  }
}
**

Редактировать 2: Вот так выглядит мой index.js:

require("dotenv").config();
const express = require("express");
const http = require("http");
const session = require("express-session");
const bodyParser = require("body-parser");
const { SERVER_CONFIG } = require("./config");

const app = express();

const server = http.createServer(app);

app.set("view engine", "ejs");

app.use(express.static("public"));
app.use((req, res, next) => {
  // if (req.url === "/api/login") console.log(req);
  next();
});
app.use(express.json());
app.use(bodyParser.urlencoded());
app.use(
  session({
    secret: "keyboard cat",
    resave: false,
    saveUninitialized: true
  })
);

// ROUTES
require("./routes")(app);

// NOT FOUND
app.use(function(req, res, next) {
  res.status(404);

  res.format({
    html: function() {
      res.render("404");
      // res.render("404", { url: req.url });
    },
    json: function() {
      res.json({ message: "Not found" });
    },
    default: function() {
      res.type("txt").send("Not found");
    }
  });
});

// INTERNAL ERROR
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.format({
    html: function() {
      res.render("500");
    },
    json: function() {
      res.json({ message: "server error: " + err.message });
    },
    default: function() {
      res.type("txt").send("server error: " + err.message);
    }
  });
  res.send("server error: " + err.message);
  /*res.render("500", {
    message:
      COMMON_CONFIG.mode === "development"
        ? err.message
        : "Internal server error"
  });*/
});

server.listen(SERVER_CONFIG.port, err => {
  if (err) {
    console.log("Error occured");
  } else {
    console.log(`Listening on port ${SERVER_CONFIG.port}`);
  }
});

Похоже, мой пост в основном состоит из кода, поэтому я добавляю больше деталей.

1 Ответ

1 голос
/ 14 октября 2019

Listening on port undefined

Это означает, что у вас не установлен порт. Я вижу, вы используете dotenv, поэтому первое, что нужно проверить, это файл .env в корневом каталоге. Если он не был создан, создайте его и добавьте любое имя для переменной среды, указанной в index.js. Это вероятно PORT.

Далее вы захотите просмотреть параметры, которые вы передаете в express.json() или любую функцию body-parser, которую вы вызываете. Это также передает 1011 * в это.

Проверьте файл .env или системные переменные среды и добавьте необходимые.

РЕДАКТИРОВАТЬ:

Проверьте SERVER_CONFIG в файле config. Вот где у вас должны быть переменные среды, которые обычно бывают в .env. Возможно и вероятно, что SERVER_CONFIG просто потребляет пакет dotenv.

Кроме того, вам не нужно const server = http.createServer(app); Просто замените вызов на server.listen(...) на app.listen(...)

Удалите bodyParser,и использовать express.urlencoded({extended: true})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...