Reputation: 336
Hello I keep getting a error of "time.replaceAll is not a function" and I cant figure out why since I tried time.replaceAll
in a online code editor and it worked.
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");
};
Upvotes: 1
Views: 321
Reputation: 370699
String.prototype.replaceAll
is a very new feature that only recently became available in JS environments. If you want to use it in Node, either upgrade to Node 15 (15.0.0 is the earliest Node version that supports it), or use a regular expression instead:
time.replace(/:/g, '')
Upvotes: 2