Javascript 如何在每次呈现页面时更改变量
我使用以下代码为NodeJS路由中的mongoose查询生成2个时间戳Javascript 如何在每次呈现页面时更改变量,javascript,node.js,Javascript,Node.js,我使用以下代码为NodeJS路由中的mongoose查询生成2个时间戳 const endtime = new Date().toISOString(); const endtimehour = new Date(endtime); x = endtimehour.getUTCHours(); const endtimemin = new Date(endtime); y = endtimemin.getUTCMinutes(); starttime = endtime; if (x === 0
const endtime = new Date().toISOString();
const endtimehour = new Date(endtime);
x = endtimehour.getUTCHours();
const endtimemin = new Date(endtime);
y = endtimemin.getUTCMinutes();
starttime = endtime;
if (x === 0 && y < 30) {
starttime = new Date(Date.now() - 86400000);
starttime.setUTCHours(0, 30, 0, 0);
console.log(starttime.toISOString());
} else {
starttime = new Date();
starttime.setUTCHours(0, 30, 0, 0);
console.log(starttime.toISOString());
}
这是它第一次完美地计算变量,但在刷新时,它继续使用相同的值。如何确保每次呈现或刷新页面时,它都会选择新值?将该计算代码放在控制器外部,使其只运行一次。您必须将该逻辑放在控制器内,或者仅将其包装在一个函数和控制器内的调用中。大概是这样的:
const getTimes = () => {
// put your logic of time calculation here
return { starttime, endtime };
}
router.get('/users', ensureAuthenticated, (req, res) =>
const { starttime, endtime } = getTimes();
Users.find({"when": {"$gte": starttime, "$lt": endtime}}).exec()
.then(data =>{
console.log(endtime);
console.log(starttime);
});
}));
在进行此更改后尝试运行服务器时,出现以下错误:const{starttime,endtime}=getTimes();^^语法错误:模块处出现意外标记“const”。_在Object.Module处编译(internal/modules/cjs/loader.js:895:18)。_在Function.Module处加载(internal/modules/cjs/loader.js:815:32)。_在Function.Module处加载(internal/modules/cjs/loader.js:727:14)[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。
const getTimes = () => {
// put your logic of time calculation here
return { starttime, endtime };
}
router.get('/users', ensureAuthenticated, (req, res) =>
const { starttime, endtime } = getTimes();
Users.find({"when": {"$gte": starttime, "$lt": endtime}}).exec()
.then(data =>{
console.log(endtime);
console.log(starttime);
});
}));