我是NodeJS的初学者。为了实现登录功能,我需要设置Passport来处理Express身份验证。
这是我的index.js
const express = require ('express');
const bodyParser = require ('body-parser');
const cors = require ('cors');
const path = require ('path');
//const passport = require ('passport');
const {mongoose} = require ('./db.js');
var employeeController = require('./controllers/employeeController.js');
var reservationController = require('./controllers/reservationController.js');
var app = express();
app.use(bodyParser.json());
app.use(cors({origin: 'http://localhost:4200'}));
app.listen(3000, () => console.log('server started at port :3000'));
app.use('/employees',employeeController);
app.use('/reservations',reservationController);
这里我注释掉了passport
This is my employee controller which retrieve data
const express = require ('express');
var router= express.Router();
var ObjectId = require('mongoose').Types.ObjectId;
var {Employee} = require('../models/employee');
// =>localhost:3000/employees
router.get('/',(req,res) => {
Employee.find((err,docs) => {
if(!err) {res.send(docs);}
else {console.log('error in retrieving employees :' + JSON.stringify(err,undefined,2)); }
});
});
router.get('/:id',(req,res)=>{
if(!ObjectId.isValid(req.params.id))
return res.status(400).send('No record with given id : ${req.params.id}');
Employee.findById(req.params.id,(err,doc) =>{
if(!err){res.send(doc);}
else{console.log('error in retriving employee:'+JSON.stringify(err,undefined,2));}
});
});
router.post('/',(req,res) =>{
console.log(req.body);
var emp = new Employee ({
name: req.body.name,
position: req.body.position,
office: req.body.office,
salary: req.body.salary,
});
emp.save((err,doc) => {
if(!err) {res.send(doc);}
else{console.log('error in saving employee'+ JSON.stringify(err,undefined,2));}
});
});
router.put('/:id', (req, res)=>{
if(!ObjectId.isValid(req.params.id))
return res.status(400).send('No record with given id : ${req.params.id}');
var emp = {
name: req.body.name,
position: req.body.position,
office: req.body.office,
salary: req.body.salary,
};
Employee.findByIdAndUpdate(req.params.id,{$set:emp},{new:true},(err,doc) =>{
if(!err){res.send(doc);}
else{console.log('error in updating employee:'+JSON.stringify(err,undefined,2));}
});
});
router.delete('/:id',(req,res)=>{
if(!ObjectId.isValid(req.params.id))
return res.status(400).send('No record with given id : ${req.params.id}');
Employee.findByIdAndRemove(req.params.id,(err,doc) =>{
if(!err){res.send(doc);}
else{console.log('error in deleting employee:'+JSON.stringify(err,undefined,2));}
});
});
module.exports = router;
我的应用程序可以完美地从mongodb中检索数据。但是,当我从index.js中的passport中删除注释时,数据检索不会发生。当我添加passport时,我找不到哪里出了问题。请帮帮我,因为我是NodeJS的新手。
发布于 2018-06-24 02:34:42
passport不是中间件。
const path = require ('path');
const passport = require ('passport');
....
app.use(passport.initialize())
.... //your routes
希望这能解决你的问题
https://stackoverflow.com/questions/51003462
复制相似问题