我试图在node.js中按名称创建搜索选项,如果找到它将在网页中显示的名称,它将搜索本地数据库。但我在这种语法中遇到错误:user.find({id:findname},我在下面的代码中使用过。
router.get('/', function(req, res, next) {
var findname = req.body.findname;
res.render('detail', { title: 'Detail' });
});
mongoose.connect('mongodb://localhost/student');
var testSchema = new mongoose.Schema({
id : Number,
name : String,
email : String,
age : Number,
college : String
});
var user = mongoose.model('stud', testSchema, 'stud');
router.post('/show', function(req, res){
user.find({name : findname}, function(err, docs){
res.render('detail',{users:docs});
});
});
答案 0 :(得分:1)
所以,问题是你在一个函数中定义了findname
变量,并试图在另一个函数中使用它。为了完成您正在寻找的内容,您的router.post
函数应该看起来像这样:
router.post('/show', function(req, res){
var findname = req.body.findname
user.find({name : findname}, function(err, docs){
res.render('detail',{users:docs});
});
});
确保您使用正确的中间件来填充req.body
对象,否则代码仍无效。
答案 1 :(得分:0)
我建议你阅读mongoose文档Mongoose Doc。 id(和_id)字段由Mongoose自动分配。 id是_id上的虚拟getter,它是_id的字符串或十六进制表示。尝试按 public IEnumerable<MyElementType> Elements
{
get { return (IEnumerable<MyElementType>)GetValue(ElementsProperty); }
set { SetValue(ElementsProperty, value); }
}
public static readonly DependencyProperty ElementsProperty =
DependencyProperty.Register("Elements", typeof(IEnumerable<MyElementType>), typeof(MyUiUserControlType), new UIPropertyMetadata(null));
更改字段id
的名称。
无论如何,您的myId
是类型编号,并且您尝试将其与id
匹配,我猜这是一个字符串?这里有类型不匹配吗?