我创建了一个模型,我想使用req.params在模型中搜索特定的电子邮件,但我不知道它是否有效
我试过req.body并且它有效,但是req.params和req.query都给了我错误的请求响应
我的代码
Const db = require('./db.connect')
mongoose = require("mongoose");
bcrypt = require('bcryptjs');
// MONGOOSE MODEL CONFIGURATION
const UserSchema = new mongoose.Schema({
email: {
type: String,
},
password: {
type: String,
},
});
//presave hook .........
module.exports=mongoose.model('User', UserSchema)
我的路由器
const
User = require("../model/user/user.js");
mongoose = required('mongoose');
app.get('/user/:email', (req,res)=>{
return User.find({email:req.params.email})
.then(doc=>{
return status(200).json({doc:doc})
}
.catch(err=>{
return status(400)
}
})
我的模型包含
app.post("/register", function (req, res) {
var form = {
email: req.body.email,
password: req.body.password,
}
User.create(form, function (err, data) {...//do something
我从邮递员那里得到回复
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /user/:email=swam124@gmail.com</pre>
</body>
</html>
在VScode控制台上我得到了
GET /user/:email=swam124@gmail.com 404 22 142ms - 168
请帮帮我
答案 0 :(得分:0)
您的VScode控制台404的路径为/user/:email=swam124@gmail.com
使用网址http://localhost:3000/user/swam124@gmail.com
替换您自己的主机和端口详细信息
答案 1 :(得分:0)
我最终找到了解决方案。我在搜索参数后添加了[]
return User.find({email:req.params.email},[])
并且流程运作良好
app.get('/user/:email', (req, res)=>{
return User.find({email:req.params.email},[]) // added [] here
.then(doc =>{
console.log(doc)
return status(200).json({doc:doc})
})
.catch(err=>{
return res.status(400).json(err)
})
})
感谢帮助人员