gpt4 book ai didi

javascript - 正文解析器已弃用未定义扩展 : provide extended option

转载 作者:行者123 更新时间:2023-12-02 22:46:36 24 4
gpt4 key购买 nike

我在尝试运行我的代码时收到此错误,并且真的不知道如何解决它。我不太了解代码库,因为我是新手,所以我完全迷失了方向,不知道该怎么做。

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

编辑:包.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}`);
}
});

看来我的帖子主要是代码,因此我添加了更多详细信息。

最佳答案

监听未定义的端口

这意味着您没有设置端口。我发现您正在使用 dotenv,因此首先要检查的是根目录中的 .env 文件。如果尚未创建,请创建它并添加 index.js 中引用的环境变量的名称。可能是PORT

接下来,您需要检查传递到 express.json() 或您正在调用的任何 body-parser 函数的选项。它还将一个 undefined 传递给它。

检查您的 .env 文件或系统环境变量并添加所需的变量。

编辑:

检查config 文件中的SERVER_CONFIG。这就是您应该拥有通常位于 .env 中的环境变量的地方。 SERVER_CONFIG 有可能仅使用 dotenv 包。

此外,您不需要 const server = http.createServer(app); 只需将对 server.listen(...) 的调用替换为 app.listen(...)

删除 bodyParser,并使用 express.urlencoded({extended: true})

关于javascript - 正文解析器已弃用未定义扩展 : provide extended option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58380851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com