안녕하세요 다름이 아니라
node.js와 mongoDB로 회원가입을 구현하려고 코드를 짜는 중인데,
계속 username과 password를 가져오지를 못해서 질문 드립니다.
비전공자 두명이서 고민해도 도대체 무엇이 문제인지 알 수가 없네요 ㅠㅠ
우선, register.ejs 파일입니다.
<body>
<div class="center">
<h1>회 원 가 입</h1>
<form action= "/users/register" method="POST" enctype="multipart/form-data">
<div class="txt_field">
<input type="text" id="username" name="username" required>
<span></span>
<label>Username</label>
</div>
<div class="txt_field">
<input type="password" id="password" name="password" required>
<span></span>
<label>Password</label>
</div>
<input type="submit" value="Register" id="sendMassageButton">
</form>
</div>
</body>
storeUser.js입니다.
const User = require('../models/User.js')
const path = require('path')
module.exports = (req,res) =>{
User.create(req.body, (error, user)=>{
res.redirect('/')
})
}
User.js 입니다.
const mongoose = require('mongoose')
const UserSchema = new mongoose.Schema({
username: String,
password: String
});
//export model
const User = mongoose.model('User',UserSchema);
module.exports = User
마지막으로 index.js 입니다.
const express = require('express')
const app = new express()
const mongoose = require('mongoose');
const path = require('path')
const storeUserController = require('./controllers/storeUser')
mongoose.connect('mongodb://localhost/user_database',{
useNewUrlParser: true,
useUnifiedTopology: true});
const ejs = require('ejs')
app.set('view engine','ejs')
app.use(express.static('public'))
app.listen(4000, ()=>{
console.log('App listening on port 4000')
})
app.get('/',(req,res)=>{
res.render('index');
})
app.post('/users/register',storeUserController)
도대체 뭐가 문제일까요 ..ㅠㅠㅠㅠ register 버튼을 누르면 mongoDB에 뭐가 저장되기는 하는데... 텅텅 비어있습니다...
뭔가 register.ejs에 있는 text상자에서 username과 password를 못가져오는 거 같은데 왜이러는지 진짜 답답해서 미칠거같네요...
위에 두개는 test.js를 따로 만들어서 임의로 저장해 본 것입니다.
register 버튼을 누르면 제일 마지막처럼 이상한 녀석만 뜹니다..
ejs에서 뭔가 문제가 있는거 같은데 도대체 왜이러나요 흑흑 ...
도와주십셔...