0
을 수행 가져 오기 데이터베이스 후 콜백을 passport.js (메시지 배열) DB로부터 비동기 적으로 가져온다.화재가 나는 그것에게 <strong>사용자</strong> 객체뿐만 아니라 몇 가지 추가 데이터를 먹이 <a href="http://www.embeddedjs.com/" rel="nofollow noreferrer">EJS</a> 뷰를 렌더링 프로필 경로에 <a href="http://www.passportjs.org/" rel="nofollow noreferrer">Passport.js</a> 페이스 북 로그인을 리디렉션 할 필요가
은 불행히도, 난
내 server.js 코드/인증/페이스 북/콜백 얻을 수없는이 오류를 얻을 여기
// Import ExpressJS
let express = require("express");
let app = express();
// Import Body Parser
let bodyParser = require("body-parser");
// Import Express Session Middleware
let session = require("express-session");
// Import EJS template engine
let ejs = require("ejs");
// Import custom middlewares
let flash = require("./middlewares/flash");
let setUser = require("./middlewares/flash");
// Import Message model
let Message = require ("./models/message");
// Import the user model
let User = require("./models/user");
// Import PassportInitializer
let passport = require("./config/passport.js");
// Import keys
let keys = require("./config/keys");
app
// Templating
.set('view engine',"ejs")
//Middlewares
// parse application/x-www-form-urlencoded
.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
.use(bodyParser.json())
//Use middlewares
.use(passport.initialize())
.use(passport.session())
// Set-up and Use Express Session
.use(session({
secret: keys.session.secret,
resave: false,
saveUninitialized: true,
cookie: { secure: false }
}))
.use(flash)
//Routes
.use("/assets",express.static("public"))
// Home
.get("/",(req,res)=>{
Message.all((messages)=>{
res.render("pages/index",{messages:messages});
})
})
//Single message
.get("/message/:id",(req,res)=>{
Message.find(req.params.id,(message)=>{
if(message===null){
res.status(400).send('<h1>HTTP Error 400: Bad Request!</h1>');
} else {
res.render("messages/show",{message:message});
}
});
})
// Facebook OAuth
.get("/auth/facebook/",passport.authenticate("facebook"))
// Facebook OAuth callback
.get('/auth/facebook/callback',passport.authenticate("facebook"),(req,res)=>{
Message.all((messages)=>{res.send(messages)});
})
// Handle posted/sent message
.post("/",(req,res)=>{
//If the message body is empty
if(req.body.message===undefined || req.body.message===""){
//flash an error message
req.flash("error","Empty message :(");
// Redirect to home
res.redirect("/")
// If the message body is not empty
} else {
// Create a new message and save it.
Message.create(req.body.message,()=>{
req.flash("success","Message added :)");
// Redirect to home
res.redirect("/");
});
}
})
// Listen on port
.listen(process.env.PORT || 3000, function(){
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});
그리고 내 message.js 파일입니다
// Import Message model
let connection = require ("../config/db");
// Import Moment Session Middleware
let moment = require("moment");
// Import Message model
let connection = require ("../config/db");
// Import Moment Session Middleware
let moment = require("moment");
class Message{
constructor(row){
this.row = row;
}
get id(){
return this.row.id;
}
get content(){
return this.row.content;
}
get created_at(){
return moment(this.row.created_at);
}
static all(callback){
// Get all messages from DB
connection.query("SELECT * FROM message",(error,results,fields)=>{
if(error) throw error;
// Run the callback function once terminated
callback(results.map((result)=>{
return new Message(result);
}));
});
}
}
// Export the Message class
module.exports = Message;
// Export the Message class
module.exports = Message;