jhj9328
@jhj93283889
Reviews Written
-
Average Rating
-
Posts
Q&A
postman html์๋ฌ(unexpected string in JSON at position 39)
//index.js const express = require("express"); const app = express(); const port = 5000; const cookieParser = require("cookie-parser"); const bodyParser = require("body-parser"); const config = require("./config/key"); const { User } = require("./models/User"); //application/x-www-form-urlencoded๋ฅผ ๋ถ์ํด์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ app.use(bodyParser.urlencoded({ extended: true })); //application/json app.use(bodyParser.json()); app.use(cookieParser()); const mongoose = require("mongoose"); mongoose .connect(config.mongoURI, { useNewUrlParser: true, useUnifiedTopology: true, //useCreateIndex: true, //useFindAndModify: false, }) .then(() => console.log("MongoDB Connected...")) .catch((err) => console.log(err)); app.get("/", (req, res) => res.send("Hello World!์๋ก๊ณ ์นจํ๊ธฐ์ ์ ๋ฐ๋์ด์ฉ")); app.post("/register", (req, res) => { //ํ์๊ฐ์ ํ ๋ ํ์ํ ์ ๋ณด๋ค์ client์์ ๊ฐ์ ธ์ค๋ฉด //๊ทธ๊ฒ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ์ด์ค๋ค. const user = new User(req.body); user.save((err, userInfo) => { if (err) return res.json({ success: false, err }); return res.state(200).json({ success: true, }); }); }); app.post("/api/users/login", (req, res) => { //์์ฒญ๋ ์ด๋ฉ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋์ง ์ฐพ๋๋ค. User.findOne({ email: req.body.email }, (err, user) => { // console.log('user', user) if (!user) { return res.json({ loginSuccess: false, message: "์ ๊ณต๋ ์ด๋ฉ์ผ์ ํด๋นํ๋ ์ ์ ๊ฐ ์์ต๋๋ค.", }); } //์์ฒญ๋ ์ด๋ฉ์ผ์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์๋ค๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋ ๋น๋ฐ๋ฒํธ ์ธ์ง ํ์ธ. user.comparePassword(req.body.password, (err, isMatch) => { // console.log('err',err) // console.log('isMatch',isMatch) if (!isMatch) return res.json({ loginSuccess: false, message: "๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ์ต๋๋ค.", }); //๋น๋ฐ๋ฒํธ ๊น์ง ๋ง๋ค๋ฉด ํ ํฐ์ ์์ฑํ๊ธฐ. user.generateToken((err, user) => { if (err) return res.status(400).send(err); // ํ ํฐ์ ์ ์ฅํ๋ค. ์ด๋์ ? ์ฟ ํค , ๋ก์ปณ์คํ ๋ฆฌ์ง res .cookie("x_auth", user.token) .status(200) .json({ loginSuccess: true, userId: user._id }); }); }); }); }); app.listen(port, () => console.log(`Example app listening on port ${port}!`));
- 0
- 4
- 1.3K
Q&A
postman html์๋ฌ(unexpected string in JSON at position 39)
//user.js const mongoose = require("mongoose"); const bcrypt = require("bcrypt"); const saltRounds = 10; const jwt = require("jsonwebtoken"); const userSchema = mongoose.Schema({ name: { type: String, maxlength: 50, }, email: { type: String, trim: true, unique: 1, }, password: { type: String, }, lastname: { type: String, maxlength: 50, }, role: { type: Number, default: 0, }, image: String, token: { type: String, }, tokenExp: { type: Number, }, }); userSchema.pre("save", function (next) { var user = this; if (user.isModified("password")) { //๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํ ์ํจ๋ค. saveํ๊ธฐ pre์ ํ function์ ์ ํจ.(bcrypt๋ฅผ ํตํด) bcrypt.genSalt(saltRounds, function (err, salt) { if (err) return next(err); bcrypt.hash(user.password, salt, function (err, hash) { if (err) return next(err); user.password = hash; next(); }); }); } else { next(); } }); userSchema.methods.comparePassword = function (plainPassword, cb) { //์ํธํ๋ ๋น๋ฐ๋ฒํธ์ plainpassword๊ฐ ๊ฐ์์ง ์ฒดํฌํด์ผํจ. bcrypt.compare(plainPassword, this.password, function (err, isMatch) { if (err) return cb(err); cb(null, isMatch); }); }; userSchema.methods.generateToken = function (cb) { var user = this; //jsonwebtoken์ ์ด์ฉํด์ token์ ์์ฑํ๊ธฐ var token = jwt.sign(user._id.toHexString(), "secretToken"); // user._id+ "secretToken" = token // -> // 'secretToken' -> user._id user.token = token; user.save(function (err, user) { if (err) return cb(err); cb(null, usuer); }); }; const User = mongoose.model("User", userSchema); module.exports = { User };
- 0
- 4
- 1.3K




