8
我Node + MongoDB
基於REST API的工作本地Node
服務器上的精細,並返回正確的輸出上。但Express
(可能!)在Openshift上部署時返回錯誤400 Bad Request
。 任何想法我可能會調試應用程序?我試圖在違規方法中使用一些console.log
聲明,但即使這些聲明沒有被調用。的Node.js上Openshift給出錯誤400,但正常工作的本地機器
順便說一句,一些示例代碼:
app.js:
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var app = express();
var userController = require('./Controllers/user');
var authController = require('./Controllers/auth');
mongoose.connect(process.env.OPENSHIFT_MONGODB_DB_URL + 'dbname');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With , content-type, Authorization ,x-access-token ,' +
'x-auth-email ,x-auth-password');
next();
});
app.post('/signin',authController.authorize,userController.signin);
控制器/ auth.js:
var passport = require('passport');
var User = require('../Models/user');
var LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(function(email,password,callback) {
console.log('passport called');
User.findOne({email:email},function(err, user){
console.log('email at passport: ' + email);
if(err){
return callback(err);}
if(!user){return callback(null,false);}
user.matchPassword(password,function(err,isMatch){
if(err){return callback(err);}
if(!isMatch){return callback(null,false);}
console.log('isMatch: ' + isMatch);
return callback(null,user);
});
});
}));
exports.authorize = passport.authenticate('local', { session : false });
控制器/ user.js的:
var User = require('../Models/user');
var jwt = require('jsonwebtoken');
exports.signin = signin= function (req,res){
User.findOne({email:req.body.email},function(err, user){
if(err){res.send(err);}
console.log(user);
user.token = jwt.sign(user.password, 'SECRET_KEY');
user.save(function (err,user) {
if (err) {
res.send(err);
}
res.json({email:user.email,token:user.token});
})
});
};
打電話給signin
路由與郵政郵遞員在本地服務器返回json中的預期數據,但返回HTTP 400 Bad Request
部署在Openshift上。我甚至試圖將express
降級到Openshift上的版本,但問題依然存在。
是否有在OpenShift你的日誌文件的信息,你可以提供? –
應用程序正常運行。任何日誌文件都沒有輸出。發送錯誤後,應用程序不會終止。 –
代碼?沒有一定的背景下,你的問題就無法回答。 –