【发布时间】:2021-11-19 17:01:08
【问题描述】:
我目前正在使用 Express、Node、Mongoose 和 Passport.js 开发注册和登录系统,并且注册大部分工作正常,但是登录系统存在一个大问题。由于某种原因,在我创建护照的方法中无法读取未定义的“护照”,因此出现了未定义的内容,但我似乎无法弄清楚。 我不知道为什么它不起作用,请任何帮助!
这是我的代码 app.js
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');
mongoose.connect(config.database);
mongoose.connection.on('connected', () => {
console.log('Connected to database ' + config.database);
});
mongoose.connection.on('error', (err) => {
console.log('Database error:' + err);
});
const app = express();
const users = require('./routes/users');
const port = 3000;
app.use(cors());
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());
app.use('/users', users);
app.get('/', (req, res) => {
res.send('Invalid Endpoint');
});
app.listen(port, () =>{
console.log('Server started on port' + port);
});
users.js
const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const User = require('../models/user');
router.post('/register', (req, res, next) =>{
let newUser = new User({
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password
});
User.addUser(newUser, (err, user) => {
if(err){
res.json({success: false, msg:'Failed to register user'});
}else {
res.json({success: true , msg:'User registered'});
}
});
});
router.post('/authenticate', (req, res, next) =>{
res.send('AUTHENTICATE');
});
router.get('/profile', (req, res, next) =>{
res.send('PROFILE');
});
module.exports = router;
【问题讨论】:
-
请编辑您的问题,在堆栈跟踪中包含错误以及与错误相关的其他代码。根据您提供的错误消息,代码的某些部分正在访问未定义对象的属性(护照)。但是,在您提供的代码中没有这样的访问权限。
标签: node.js