我期望的输出作为,它应该console.log()
进行的交易到我的命令提示。它只能打印userSchema
接受交易的所有对象。它正在打印“未定义”
[nodemon] 1.18.9
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server.js`
Running on port 3000
Connection established
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Running on port 3000
Connection established
5c4b294efb654f1770522264
{ _id: 5c4b294efb654f1770522264,
email: 'dev@dev.com',
username: 'username',
password:
'MY_SECRET_PASSWORD',
privateKey:'MY_PRIVATE_KEY',
__v: 0 }
undefined
POST /api/getTransactions 200 264.266 ms - -
这是POST路线
router.post('/getTransactions', function (req, res) {
userId = req.body._id
console.log(userId)
//console.log(process.env.NODE_ENV)
User.findOne({ _id: userId }, function (err, user) {
console.log(user)
if (user) {
console.log(user.transactions)
res.send(user.transactions)
} else {
console.log(err)
}
})
})
这是用户模式
var TransactionSchema = new Schema({
time: {
type: String
},
date : {
type: String
},
transactionType : {
type: String
},
email : {
type: String
},
amount: {
type: String
},
txHash:{
type: String
}
})
var UserSchema = new Schema({
username: {
type: String
},
email: {
type: String,
},
password: {
type: String
},
ethAddress: {
type: String
},
privateKey: {
type: String
},
transactions: TransactionSchema,
})
答案 0 :(得分:0)
可能是这种情况,但是您提供的一些详细信息似乎并未存储交易。 发生交易时,您必须将交易从进行交易的地方(首先保护它)推入交易字段(在您的代码中似乎不是数组)。
据我所知,根据您提供的代码,我会说您应该:
TransactionSchema
的数组此后,当您获得user
时,它现在应包括该用户进行的所有交易。
答案 1 :(得分:0)
var TransactionSchema = new Schema({
time: {
type: String
},
date : {
type: String
},
transactionType : {
type: String
},
email : {
type: String
},
amount: {
type: String
},
txHash:{
type: String
}
})
var UserSchema = new Schema({
username: {
type: String
},
email: {
type: String,
},
password: {
type: String
},
ethAddress: {
type: String
},
privateKey: {
type: String
},
transactions: [
type: mongoose.Schema.Types.ObjectId,
ref: 'TransactionModel' // this should be the name of your
// transactions model
}
]
})
那么您应该查询
User.findOne({ _id: userId })
.populate('transactions')
.then(user => {
console.log(user)
})
.catch(e => {
consoel.log('error')
});
请使用我的诺言,因为我发现它更容易,您可以将其转换为回调函数
希望对您有帮助