node.js - 即使在Nodejs中进行url编码后,请求正文也没有获取数据,如何解决?
问题描述
我也安装了 body-parser 模块,但没有工作。请建议如何解决这个问题?
我的代码部分如下。
我的 index.js
const express = require("express");
const ejs = require("ejs");
const app = new express();
app.set("view engine", "ejs");
app.use(express.static("public"));
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//db connection
const mongoose = require("mongoose");
mongoose
.connect("mongodb://localhost/cryptoAssets")
.then(() => console.log("Connected"))
.catch((err) => console.log(err));
//models
const Coin = require("./models/Coin");
//global.title = "Crypto Assets"
app.use(function (req, res, next) {
console.log(req);
res.locals.title = "Marker"; //To set website title
req.active = req.path; // [0] will be empty since routes start with '/'
if (req.length === 0) req.active = "Home";
next();
});
//controllers
const homeController = require("./controllers/home");
const aboutController = require("./controllers/about");
const contactController = require("./controllers/contact");
const portfolioController = require("./controllers/portfolio");
const servicesController = require("./controllers/services");
const teamController = require("./controllers/team");
const ratesCalculatorController = require("./controllers/ratesCalculator");
//routes
app.get("/", homeController);
app.get("/home", homeController);
app.get("/about", aboutController);
app.get("/contact", contactController);
app.get("/portfolio", portfolioController);
app.get("/services", servicesController);
app.get("/team", teamController);
app.get("/ratesCalculator", ratesCalculatorController);
app.get("/posts/newCoin", (req, res) => {
res.render("newCoin", { activestate: req.active });
});
app.post("/posts/storeCoin", (req, res) => {
console.log("----------------------------");
console.log(req.body);
console.log("----------------------------");
//await Coin.create(req.body);
//res.redirect("/");
});
app.listen(4000, () => {
console.log("App listening on port: 4000");
});
我的币.js
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const CoinSchema = new Schema({
coinName: String,
coinDescription: String,
});
const Coin = mongoose.model("Coin", CoinSchema);
module.exports = Coin;
我的新硬币模板:
<!DOCTYPE html>
<html lang="en">
<%- include('layouts/head'); -%>
<body>
<%- include('layouts/topbar'); -%>
<%- include('layouts/header'); -%>
<main id="main">
<!-- ======= Contact Section ======= -->
<section id="contact" class="contact">
<div class="container" data-aos="fade-up">
<div class="section-title">
<h2>Calculate currency</h2>
<h3><span>Rates Calculator</span></h3>
<p>You can calculate your currency and crypto coin exchnage rate here</p>
</div>
<div class="row w-25 mx-auto">
<form action="/posts/storeCoin" method="POST" role="form" class="php-email-form">
<!--<div class="row">
<div class="col form-group">
<select id="coin" class="form-control" name="coin" required>
<option value="" disabled selected>- Select Cryptocurrency -</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
</div>
</div>-->
<div class="col">
<div class="col form-group">
<input type="text" name="coin" class="form-control" id="coin" placeholder="coin name" required>
</div>
<div class="form-group">
<textarea class="form-control" id="description" name="description" rows="5" placeholder="Description"></textarea>
</div>
</div>
<div class="my-3">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Calculated Value. Thank you!</div>
</div>
<div class="text-center"><button type="submit">Add to List</button></div>
</form>
</div>
</div>
</section><!-- End Contact Section -->
</main><!-- End #main -->
<%- include('layouts/footer'); -%>
</body>
</html>
当我提交表单时,请求正文为空。表单数据显示在 chrome 菜单中,但正文为空。
我也安装了 body-parser 模块,但没有工作。请建议如何解决这个问题?
解决方案
推荐阅读
- android - 附加多个图像并通过 SMTP 发送邮件
- excel - 想要将特定行的 excel 发送到 selenium TestNG 中的数据提供者
- c# - 为什么在使用“非”运算符时,“是”运算符的行为会有所不同?
- json - 如何更新json文件中的某些值并通过jq将更改保存在同一文件中
- node.js - 安装 express/body-parser 节点 js eclipse 插件的问题
- macros - 表达式必须有一个常数值:IAR R8C 和 M16
- javascript - 使用 Semantic UI React 将 SVG 渲染为图像
- javascript - 使用本地化时间设置 cookie 到期/最大年龄
- c++ - 以二进制格式读取类
- neural-network - 如何使用 Q-Learning 训练神经网络