【问题标题】:app.post() is not working plz help tried everythingapp.post() 不工作请帮助尝试一切
【发布时间】:2021-11-09 12:22:09
【问题描述】:

快递代码如下:- 无论我尝试什么,我都会将 res.body 设为 ({}) 我找不到错误 我什至检查了文档但无济于事

const app = express();
const Blog = require('./models/blog');

//to enable post requests

app.use(express.json()); 
app.use(express.urlencoded({extended : true}));


// for views 
// views enable dynamiiic content loading more suitable for real life website
app.set('view engine', 'ejs');

app.listen(3000);


app.get('/', (req, res) => {
    
    // res.sendFile('./html-pages/index.html', {root : __dirname});
    
    //using views and sending objects
    //pasing values to ejs files
    res.redirect('/blogs');
});


//post method
app.post('/blogs', (req, res) => {
    console.log(req.body);
    
    // const blog = new Blog(req.body);
});
app.get('/blogs/create', (req, res) => {
    res.render('create', {title : 'Create a Blog'})
})

表单代码:- ejs 文件 这包含用于提交博客的表单=

        <div class="create-blog content">
            <form action="/blogs" method="POST">
                <label for="title">Blog title</label>
                <input type="text" id="title" name:"title" required>
                <label for="snippet">Blog Snippet</label>
                <input type="text" id="snippet" name:"snippet" required>
                <label for="body">Blog Body</label>
                <textarea id="body" required name:"body"></textarea>
                <button>Submit</button>
            </form>
        </div>
    
        

【问题讨论】:

  • 你用过body-parser中间件吗? app.use(express.bodyParser());

标签: javascript node.js mongodb express mongoose


【解决方案1】:

这个问题很难理解,但我在您的前端表单中看到了错误。 应该看起来像这样:

<form action="/blogs" method="POST">
  <label for="title">Blog title</label>
  <input type="text" id="title" name="title" required />
  <label for="snippet">Blog Snippet</label>
  <input type="text" id="snippet" name="snippet" required />
  <label for="body">Blog Body</label>
  <input type="text" name="body" required />
  <input type="submit" value="Submit">
</form>

请注意,只有那些字段将在具有name 属性的 POST 正文中发送。

并在后端使用 bodyparser。

【讨论】:

    【解决方案2】:

    您的 javascript 文件中似乎没有问题。但是在&lt;input&gt; 标签内的车把中,您必须使用= 而不是:,这可能会正常工作。喜欢&lt;input name="title" id="title"/&gt;

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多