为什么会遇到此错误:"time.replaceAll is not a function"



你好,我一直收到一个错误"time.replaceAll不是函数";我不知道为什么,因为我在一个在线代码编辑器中尝试了time.replaceAll,它成功了。

exports.ForgotPasswordToken = async (req, res) => {
username = req.body.username;
const add_minutes = function (dt, minutes) {
return new Date(dt.getTime() + minutes * 60000);
};
const time = add_minutes(new Date(), 10).toString();
const decimalTime = time.replaceAll(":", "").substr("16", "6");
const tokenExp = decimalTime;
const token = Math.random()
.toString(24)
.replace(/[^a-z]+/g, "")
.substr(0, 5);
hashed_token = bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(token, salt, (err, hash) => {
if (err) {
console.log(err);
}
});
});
await User.findOne({ username: username }, (err, obj) => {
const userEmail = obj.email;
});
let newToken = new Token({
tokenUser: username,
tokenVal: hashed_token,
tokenExpiration: tokenExp,
});
const resetLink = `https://localhost:5000/password/reset/${token}/${username}`;
newToken.save();
passwordResetEmail(username, userEmail, resetLink);
res.redirect("/login");
};

String.prototype.replaceAll是一个非常新的功能,最近才在JS环境中可用。如果您想在Node中使用它,请升级到Node 15(15.0.0是支持它的最早Node版本(,或者使用正则表达式:

time.replace(/:/g, '')

最新更新