Untitled
unknown
javascript
a year ago
2.7 kB
4
Indexable
const router = require("express").Router(); const bcrypt = require("bcryptjs"); const User = require("../../../../database/models/User"); router.post("/", async (req, res) => { const { username, password } = req.body; // username checks if (!/^[a-z0-9]+$/i.test(username)) return res.status(200).json({ success: false, error: { name: "username", error: "Your username must only contain alphanumeric characters." } }); if (username.length < 4) return res.status(200).json({ success: false, error: { name: "username", error: "Your username must be at least 4 characters long." } }); User.findOne({ username: username }).then(user => { if (user) { return res.status(200).json({ success: false, error: { name: "username", error: "That username is already taken." } }); } // password checks if (password.length < 6) { return res.status(200).json({ success: false, error: { name: "password", error: "Your password must be at least 6 characters long." } }); } // hash password and insert user into database bcrypt.genSalt(10, async (err, salt) => { if (err) return res.status(200).json({ success: false, error: { name: "password", error: err.message } }); bcrypt.hash(password, salt, async (err, hash) => { if (err) return res.status(200).json({ success: false, error: { name: "password", error: err.message } }); const time = Math.floor(new Date().getTime() / 1000); const user = { username: username, password: hash, membership: 0, role: 0, total_queries: 0, time_created: time, last_updated: time }; const result = new User(user); await result.save(); return res.status(200).json({ success: true }); }); }); }); }); module.exports = router;
Editor is loading...
Leave a Comment