我使用express,node,bodyParser从联系表单中提取信息并将其发布到终端。当我运行代码并通过LocalHost:3000访问演示站点时,提交后,我的输入项未显示在终端中。
我尝试过更改表单属性action =“ send” action =“ / send” action =“ /”
url delete
答案 0 :(得分:0)
您是否尝试过控制台记录app.post的req而不是res?
答案 1 :(得分:0)
如果您正在执行console.log(req.body),那么这应该输出一个长json对象。如果这种情况没有发生,则说明您未点击网址。
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const exphbs = require('express-handlebars');
const nodemailer = require('nodemailer');
const app = express();
// View engine setup
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
// Static folder
app.use('/public', express.static(path.join(__dirname, 'public')));
// Body Parser Middleware
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.render('contact', { layout: false });
});
app.post('/send', (req, res) => {
console.log(res.body);
});
问题出在您的html代码中。我做了一些更改,请尝试一下。
//Form HTML code
<form action="http://localhost:9000/send" method="POST">
<input name="name" type="text" id="name" placeholder="NAME: First & Last">
<input name="email" type="text" id="email" placeholder="EMAIL:">
<textarea name="text" id="text" cols="30" rows="10" placeholder="QUESTION OR INQUIRY:"></textarea>
<br>
<button type="submit">Submit</button>
</form>