我在我的node.js应用程序上使用Passport,我目前正在使用用户名登录.
在我的用户注册页面上,我允许用户注册其唯一的用户名和电子邮件.
我想要一个登录页面"使用用户名/电子邮件登录:" _ __ _ __ _ _
脚本可以检测字段中是否有"@"并查找电子邮件而不是用户名.
我试了好几个小时但没有用.
这是我的passport.js
var mongoose = require('mongoose')
var LocalStrategy = require('passport-local').Strategy
var User = mongoose.model('User');
module.exports = function(passport, config){
passport.serializeUser(function(user, done){
done(null, user.id);
})
passport.deserializeUser(function(id, done) {
User.findOne({ _id: id }, function (err, user) {
done(err, user);
});
});
passport.use(new LocalStrategy({
usernameField: 'username',
passwordField: 'password'
}, function(username, password, done) {
User.isValidUserPassword(username, password, done);
}));
}
Run Code Online (Sandbox Code Playgroud)
编辑:下面是所请求的user.js
var mongoose = require('mongoose');
var hash = require('../util/hash.js');
UserSchema = mongoose.Schema({
username: String,
email: String, …Run Code Online (Sandbox Code Playgroud) 我正在使用Jade模板引擎开发一个nodejs应用程序.
在我的主("/")布局中,我有以下代码在我的公共路径中加载外部CSS.
link(rel='stylesheet', href='/stylesheets/styles.css')
...
Run Code Online (Sandbox Code Playgroud)
有多行外部javascript和css文件要加载.
但是,当我必须从我的/ users/profile jade模板加载它时,链接被破坏.
它说
GET http://localhost:3000/users/javascripts/underscore.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
有没有办法让一组链接在我的所有Jade模板中都有效,所以我不必每次都手动重新定义它们?
丹尼斯,先谢谢你
说我有记录
{
"_id": "3536463525325645",
"name": "james",
"friends": [
"jack",
"john",
"jeff",
"michael"
]
}
Run Code Online (Sandbox Code Playgroud)
我想清除整个数组,结果如下:
{
"_id": "3536463525325645",
"name": "james",
"friends": [
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用$ pull但无济于事.谁有任何建议?