如何使用Node.js和Express

时间:2017-10-25 11:48:37

标签: javascript jquery node.js mongodb forms

我跟着这个tutorial,我可以在那里制作一个用户提交评论和姓名的表格。但是,我想发送用户按下提交按钮的日期。它似乎只保存用户放入文本字​​段的数据。我不希望用户能够自己做。我该怎么做?

我使用的是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上我不明白我可以把日期放在哪里/哪里。

2 个答案:

答案 0 :(得分:2)

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

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('/')
  })
})

答案 1 :(得分:0)

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

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