使用req.路由器外的用户.Post或router.get



是否有办法让我能够在帖子之外使用req.user或获得请求?我问这个是因为我想在别的地方使用这个变量。req.user来自用户模式,定义如下:

const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
health: {
type: Number,
},
energy: {
type: Number,
},
attack: {
type: Number,
},
defence: {
type: Number,
},
endurance: {
type: Number
},
exp: {
type: Number
},
power: {
type: Number
},
charactername: {
type: String
},
characterimg: {
type: String
},
alive: {
type: String
},
});
const User = mongoose.model('User', UserSchema);
module.exports = User;

现在有一种方法让我访问req.user以外的get或post请求?或者我可以用另一种不包含' request .user '的方式访问该模式吗?

给你一个小例子:

router.post('/mission1btn',  ensureAuthenticated, function(req, res){
const user = req.user

上面是我使用它的地方,但现在我想在外面使用它。例如在这个地方:

function check() {
if (user.endurance = 100) {
//do something
}
}

考虑您的Mongoose用户定义在文件models/User.js中。

在任何其他代码中,您可以从数据库中找到一个用户,并使用此代码

对其执行操作。
"use strict";
const User = require('./models/User.js');

User.findOne({name:"test"}, function(error,user) {
if(error) {
throw error;
}
// user here is the same object as `req.user` 
console.log(user.name); // outputs "test"
if (user.endurance = 100) {
//do something
}
});

最新更新