我是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()成一个语句?
答案 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 :(得分: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()
});
};