简体   繁体   English

在node.js中将函数与返回值一起使用

[英]Use function with return value in node.js

I try to use function from extern module to create date 我尝试使用extern模块中的函数来创建日期

helper.js helper.js

function createDate() {
  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1; //January is 0!

  var yyyy = today.getFullYear();
  if(dd<10){
    dd='0'+dd;
  }
  if(mm<10){
    mm='0'+mm;
  }
  today = dd+'/'+mm+'/'+yyyy;
  return today;
}

module.exports = {
  f1: createDate,
};

And then use it in my server.js in line createdAT : 然后在我的server.js中的createdAT行中使用它:

let helper = require('./helper.js');

app.post('/tasks',  function(req, res) {
  let savedata;
  console.log(req.body);
    let tmpData = [];
    for (let i = 0; i < req.body.length; i ++) {
      savedata = new Model({
        'taskName': req.body[i].taskName,
        'isDone': false,
        //'createdAt': Date.now(),
        'createdAt': helper.f1(),
        'prioraty': req.body[i].prioraty
      });
      tmpData.push(savedata)
    }
    savedata = tmpData;
    Model.collection.insert(savedata, function (err, result) {
      if (err) throw err;

      if (result) {
        res.json(result)
      }
    })
});

But it return me not the date in format dd/mm/yyyy but 2018-02-05T23:00:00.000Z The format is wrong and also the time...How could I fix this? 但是它返回的不是日期格式为dd / mm / yyyy的日期,而是2018-02-05T23:00:00.000Z格式不正确的时间以及时间...我该如何解决?

so from what i understand you don't need the to format the date before you insert it to your database what you actually need is to format the date when you return the response. 因此,据我了解,您不需要在将日期插入到数据库中之前格式化日期,而实际上,您需要在返回响应时格式化日期。 here is a little bit tweak to your code: 这是您的代码的一些调整:

change createDate() to accept date value from database 更改createDate()以接受数据库中的日期值

function createDate(dateFromDb) {
  var today = new Date(dateFromDb);
  var dd = today.getDate();
  var mm = today.getMonth()+1; //January is 0!

  var yyyy = today.getFullYear();
  if(dd<10){
    dd='0'+dd;
  }
  if(mm<10){
    mm='0'+mm;
  }
  today = dd+'/'+mm+'/'+yyyy;
  return today;
}

then uncomment the first //'createdAt': Date.now() 然后取消注释第一个//'createdAt': Date.now()

savedata = new Model({
    'taskName': req.body[i].taskName,
    'isDone': false,
    //'createdAt': Date.now(),
    'prioraty': req.body[i].prioraty
  });

then finally before you send the result do this 然后最后在发送结果之前执行此操作

if (result) {
    result.createdAt = helper.f1(result.createdAt);
    res.json(result)
}

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

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