繁体   English   中英

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

[英]How to send date when submitting a form with Node.js and 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函数,但是老实说,最好不要在服务器上设置提交日期,因为您实际上并不关心它在客户端计算机上的时间。 您的数据库可以通过时间戳字段为您完成此操作,也可以在快速路由的节点中进行操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM