如何将此代码减少到一行?

时间:2012-12-21 17:36:25

标签: javascript node.js express

我是javascript,node.js和express的新手。我的问题是,如何重构以下代码,使其在函数内部成为一行?

exports.about = function(req, res){
 var mytime = new Date();
 res.render('about', {title: 'about page', time: mytime.toLocaleDateString() });
};

换句话说,有没有办法可以压缩var mytime = new Date();和时间:mytime.toLocalDateString()成一个语句?

6 个答案:

答案 0 :(得分:10)

你没有。可读性简洁。让机器进行缩小。


您可以将mytime.toLocaleDateString()写为(new Date()).toLocaleDateString(),但我不会推荐它。

我最喜欢的造型:

exports.about = function(req, res){
  var mytime = new Date();
  res.render('about', {
    title: 'about page',
    time: mytime.toLocaleDateString()
  });
};

答案 1 :(得分:4)

Frits' answer:你可以,但是真的有需要吗?你完成它的方式很好,也很可读。

但是,如果你真的,真的想,这就是:

exports.about = function(req, res){
 res.render('about', {title: 'about page', time: new Date().toLocaleDateString() });
};

看起来有点奇怪,但new Date()部分优先,所以你甚至不需要它周围的parens(例如,你不需要time: (new Date()).toLocaleDateString())。如果你愿意,你可以拥有它们,但它们不是必需的。

答案 2 :(得分:1)

ONE LINE

exports.about = function(req, res){ res.render('about', {title: 'about page', time: new Date().toLocaleDateString() }); };

但这非常愚蠢。您的原始代码没有任何问题。

答案 3 :(得分:1)

让这段代码更短不会让它变得更好。我个人会把它做得更大,就像这样:

exports.about = function (req, res) {
    var mytime = new Date();
    res.render('about', {
        title: 'about page',
        time: mytime.toLocaleDateString()
    });
};
  • 我在function之后添加了一个空格,因为那是JSLint想要的。
  • 我在{之前添加了一个空格,因为这使它更具可读性。
  • 我将所有对象属性放在不同的行上,所以我不需要整天水平滚动(现在我可以在每个属性的末尾添加注释,是的!)。
  • 最后我用制表符替换了空格缩进,因为这样可以使所有内容完美对齐,同时只需要一次按键即可移除或覆盖它们(如果您的插入符号位于行的开头4个空格需要4个按键移动对于您的代码,单个选项卡只需要一个按键)。

答案 4 :(得分:0)

你可以,

exports.about = function(req, res){
  res.render('about', {title: 'about page', time: new Date().toLocaleDateString() });
};

但那是关于它的。我同意Frits van Campen。

答案 5 :(得分:0)

我的观点是删除mytime var是更好的风格,因为你只是获得了当前的系统时间,而新的Date()使意图非常清晰。

exports.about = function (req, res) {
    res.render('about', {
        title: 'about page',
        time: new Date().toLocaleDateString()
    });
};