0
私はNodeJSを使用してREST APIサービスを作成しています。 Webページやejsファイルをレンダリングする必要はありません。NodeJSでレスポンスとしてJSONをレンダリング
これを念頭に置いて、JSONテンプレートを '.ejs'テンプレートを保存するための 'views'フォルダのように保存するアーキテクチャがあるかどうかを知る必要があります。
また、私は、ユーザーを認証するためにパスポートモジュールで働いていると私は、JSON応答にフラッシュメッセージを渡すことはできません、これまでのところ、これは、それがどのように見えるかです:
passport.use('local.signup', new LocalStrategy({
usernameFiled : 'email',
passwordField : 'password',
passReqToCallback : true
}, function(req, res, password, done){
User.findOne({'email' : email}, function(err, user){
if (err)
return done(err);
if (user)
return done(null, false, {message : 'Email already in use'});
var newUser = new User();
newUser.email = email;
newUser.password = newUser.encryptPassword(password);
newUser.save(function(err, result){
if (err)
return done(err);
return done(null, newUser);
});
});
})) ;
そして、これは私のルーティングです:
app.post('/signup', passport.authenticate('local.signup', {
successRedirect : '/me',
failureRedirect : '/loginerr',
failerFlash : true
}));
/*===== SECURE ==== */
app.get('/me', function(req, res, next){
res.end('Welcome user');
});
/* ========== Errors ====================== */
app.get('/loginerr', function(req, res, next){
var message = req.flash('error');
res.setHeader('Content-Type', 'application/json');
res.json({'error' : 'email already taken'}); //Here i should use the flash message instead.
});
ユーザーがサインアップしたときにエラーが発生すると、/ loginerr getにリダイレクトされます。代わりに、JSONのテンプレートで応答してフラッシュメッセージで応答したい。
どうすればいいですか?