尝试使用findById
从数据库记录数据时,我得到undefined
的返回值。
// Get single article
app.get('/article/:id', (req, res) => {
Article.findById(req.params.id, (err, article) => {
console.log(article);
return;
});
});
//Article Schema
let articleSchema = mongoose.Schema({
title: { type: String, required: true },
author: { type: String, required: true},
body: { type: String, required: true}
});
let Article = module.exports = mongoose.model('Article', articleSchema)
我查了几件事,然后我开始工作,但我不确定这是否是正确的方法呢
所以我发现如果我使用findOne()
并传入Article.id
我得到了我想要的结果,但这是正确的做事方式吗?
我觉得article.id
应该通过req.params.id
,但当我将其传递给findOne()
时,我会收到错误消息:
Error: Invalid argument to findOne(): 'article_id'
答案 0 :(得分:0)
使用$(".some_selector").click(function () {
$("table.your_class").append("<tr> <td>col1</td> <td>col2</td> </tr>");
});
当你在寻找对象id而不是String时。
答案 1 :(得分:0)
我面对了,我解决了。
const UserModel = require('../models/userModel')
exports.getUser = async(req, res) => {
const _id = req.params.id
try {
const user = await UserModel.findById(_id)
if (!user) {
return res.status(404).send()
}
res.status(201).send(user)
} catch (error)
{
res.status(500).send(error)
}
}
控制器/路由
router.get('/ user /:id',userController.getUser)
答案 2 :(得分:0)
模型
const mongoose = require('mongoose')
const validator = require('validator')
const User = mongoose.model('User', {
name: {
type: String,
required: true,
trim: true
},
email: {
type: String,
required: true,
trim: true,
lowercase: true,
validate(value) {
if (!validator.isEmail(value)) {
throw new Error('Email is invalid')
}
}
},
password: {
type: String,
required: true,
minlength: 7,
trim: true,
validate(value) {
if (value.toLowerCase().includes('password')) {
throw new Error('Password cannot contain "password"')
}
}
},age: {
type: Number,
default: 0,
validate(value) {
if (value < 0) {
throw new Error('Age must be a postive number')
}
}
}
})
module.exports = User
答案 3 :(得分:0)
您是在从您的数据库中提取正确的ID,该链接是否会将您发送到/ article /:id 。我遇到了同样的问题,就像我以前在基本数组索引上学到的那样,然后转移到了MongoDB。我只需要更新一个字符,以包括MongoDB语法“ _id”而不是“ id”的下划线即可。
在我的HTML呈现页面上适合我的正确代码如下:
<a href={`/article/${article._id}`}>
我从以下开始并给了我未定义的结果:
<a href={`/article/${article.id}`}>