【发布时间】:2023-03-30 04:19:02
【问题描述】:
我有一个快速应用程序,我正在尝试使用护照本地猫鼬添加用户,但每当我尝试创建用户时,我都会收到错误消息 MissingUsernameError: No username was given。
以下是相关代码:
用户架构:
var mongoose = require('mongoose');
var passportLocalMongoose = require('passport-local-mongoose');
var UserSchema = new mongoose.Schema({
username: String,
password: String,
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", UserSchema);
注册.ejs:
<div class="field">
<div class="two fields">
<div class="field">
<input type="text" name="email" value="<%= email %>">
</div>
<div class="field">
<input type="password" name="password" placeholder="password">
</div>
</div>
</div>
app.js:
var mongoose = require('mongoose'),
passport = require('passport'),
LocalStrategy = require('passport-local'),
User = require('./models/user'),
app.use(require('express-session')({
secret: 'very secret words',
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
//New user creation
app.post('/newuser', function(req, res){
var newUser = new User({username: req.body.email});
console.log(newUser);
User.register(newUser, req.body.password, function(err, user){
if(err){
console.log('error registering user');
console.log(err);
return res.send('oops');
}
passport.authenticate('local')(req, res, function(){
res.redirect('/matches');
});
});
});
谁能看到我错过了什么?谢谢! :)
【问题讨论】:
标签: node.js express mongoose passport.js passport-local