-
-
Save fadihanna123/6914a79ad42a6db0cd8ef8a4c0f1b145 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import "./config/database"; | |
import UserRoutes from "./api/AuthRoutes"; | |
import { server } from "./config/GlobalSettings"; | |
server.use(UserRoutes); | |
const port: number = 5000; | |
server.listen(port, () => | |
console.log(` \n Server started on port ${port} \n `) | |
); | |
// Settings file | |
import cors from "cors"; | |
import express from "express"; | |
import morgan from "morgan"; | |
import { server } from "../config"; | |
server.use(express.json()); | |
server.use(express.urlencoded({ extended: true })); | |
server.use(cors()); | |
server.use(morgan("dev")); | |
// API | |
const upload = multer({ dest: "/uploads/" }); | |
router.post("/upload", upload.single("img"), async(req, res, next) => { | |
console.log(req.file); | |
}) | |
// Model | |
import { Model, model, Schema } from "mongoose"; | |
import { X } from "../typings"; | |
const UsersSchema: Schema = new Schema( | |
{ | |
img: { type: String }, | |
}, | |
{ collection: "X" } | |
); | |
export const Users: Model<X> = model<IUsers>( | |
"X", | |
UsersSchema, | |
"X" | |
); | |
// Frontend | |
const registerUser = async (): Promise<void> => { | |
try { | |
setLoading(true); | |
const { data } = await axios.post<IRegisterData>( | |
"register", | |
registerForm, {headers:{"Content-Type": "application/json"}} | |
); | |
setMsg(data.message); | |
} catch (err) { | |
setError(err.message); | |
} finally { | |
setLoading(false); | |
} | |
}; | |
<form encType="multipart/form-data" method="post"> | |
<div className="registerbox"> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="uname">X: </label> | |
</div> | |
<div className="registercol"> | |
<input | |
type="text" | |
id="uname" | |
value={registerForm.uname} | |
onChange={typer} | |
name="uname" | |
required | |
className="txtinput" | |
/> | |
</div> | |
</div> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="email">X: </label> | |
</div> | |
<div className="registercol"> | |
<input | |
type="email" | |
id="email" | |
value={registerForm.email} | |
onChange={typer} | |
required | |
className="txtinput" | |
name="email" | |
/> | |
</div> | |
</div> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="mobnr">X: </label> | |
</div> | |
<div className="registercol"> | |
<input | |
type="text" | |
id="mobnr" | |
value={registerForm.mobnr} | |
onChange={typer} | |
className="txtinput" | |
name="mobnr" | |
/> | |
</div> | |
</div> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="psw">X: </label> | |
</div> | |
<div className="registercol"> | |
<input | |
type="password" | |
id="psw" | |
value={registerForm.psw} | |
onChange={typer} | |
required | |
className="txtinput" | |
name="psw" | |
/> | |
</div> | |
</div> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="repsw">X: </label> | |
</div> | |
<div className="registercol"> | |
<input | |
type="password" | |
id="repsw" | |
value={registerForm.repsw} | |
onChange={typer} | |
required | |
className="txtinput" | |
name="repsw" | |
/> | |
</div> | |
</div> | |
<div className="registerrow"> | |
<div className="registercol"> | |
<label htmlFor="img">Img: </label> | |
</div> | |
<div className="registerspeccol"> | |
<input | |
type="file" | |
id="img" | |
value={registerForm.img} | |
onChange={typer} | |
accept="image/*" | |
required | |
name="img" | |
/> | |
</div> | |
</div> | |
<button type="button" className="btn" onClick={registerUser}> | |
X | |
</button> | |
</div> | |
</form> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment