如何在使用 Node.js 和 Express 提交表单时发送日期



我遵循了本教程,我可以在其中制作一个表单,用户可以在其中提交评论和名称。但是,我想发送用户按下提交按钮的日期。似乎它只保存用户放入文本字段的数据。我不希望用户能够自己做。我该怎么做?

我正在使用jQuery,但改为Node.js/Express,因为我必须将数据保存到数据库中,而且我不太了解它。

index.ejs 上的代码:

  <form action="/tweets" method="POST">
 <input type="name" id="name" placeholder="name" name="name">
 <textarea type="text" id="tweet" placeholder="What's up?" name="tweet"></textarea>
 <button type="submit">Tweet!</button>
 </form>

每当我按提交时,名称和推文都会被保存,但我不知道如何保存日期。

.js代码如下所示:

app.post('/tweets', (req, res) => {
db.collection('tweets').save(req.body, (err, result) => {
 if (err) return console.log(err)
console.log('saved to database')
res.redirect('/')
})
})

当我使用jQuery时,我在index.html中有一个这样的按钮:

<input type="button" id="addTweet" value="Tweet!"/>

在.js文件中的哪个位置是这样做的:

  $('#addTweet').click(function(){
var addObj = {
  "name": $('#name').val(),
  "date": getTodayDate(),
  "body": $('#tweet').val()
}

这样我就可以保存他们点击按钮的日期。在 Node 上.js我不明白如何/在哪里可以输入日期。

一个可能的选择是在保存请求时修改请求。 当然,这假设您不必对基础数据库进行任何结构更改。

app.post('/tweets', (req, res) => {
  req.body.created_at = new Date();
  db.collection('tweets').save(req.body, (err, result) => {
    if (err) return console.log(err)
    console.log('saved to database')
    res.redirect('/')
  })
})

您可以在提交表单之前运行一个JavaScript函数,但说实话,您最好在服务器上设置提交日期,因为您并不真正关心客户端计算机上的时间。您的数据库可能会使用时间戳字段为您执行此操作,或者您可以在快速路由的节点中执行此操作。

如果您提供有关如何构建路由以及正在使用的数据库的更多详细信息,我将提供更多详细信息。

最新更新