Gaz*_*Gaz 2 mongoose mongodb node.js
我已经按照教程成功地设置了一个注册系统,并且一直在尝试获取自己的数据来 POST 我的 MongoDB,但是 Postman 请求永远发送。我不确定我是否遗漏了某些内容或者我是否使用了不正确的语法?
\n\n我只是想为我的 \xe2\x80\x98Hobby\xe2\x80\x99 模型发布两个字符串。
\n\nhobbies.js (api) 包含在 paths/api 中。
\n\nconst express = require("express");\nconst router = express.Router();\nconst mongoose = require("mongoose");\n\nconst Hobbies = require("../models/Hobby");\n\n// @route GET api/posts/test\n// @desc Tests post routes\n// @access Public - (Private routes are for registered and logged in users)\nrouter.get("/test", (req, res) => res.json({ msg: "Hobbies page Works" }));\n\nrouter.post("/newhobby", (req, res) => {\n //else create the new user in the DB using the data input by user\n const newHobby = new Hobbies({\n newhobby: req.body.newhobby,\n classes: req.body.classes\n });\n});\n\n//make router available elsewhere (from server.js in this case)\nmodule.exports = router;\nRun Code Online (Sandbox Code Playgroud)\n\nHobby.js(模型)模型在我的 paths/models 文件夹中定义
\n\nconst mongoose = require("mongoose");\nconst Schema = mongoose.Schema;\n\n//Create schemac\nconst HobbiesSchema = new Schema({\n newhobby: {\n type: String,\n required: true\n },\n classes: {\n type: String\n }\n});\n\nmodule.exports = Hobby = mongoose.model("hobbies", HobbiesSchema);\nRun Code Online (Sandbox Code Playgroud)\n\nServer.js 处理我的服务器的配置
\n\nconst express = require("express");\nconst mongoose = require("mongoose");\nconst bodyParser = require("body-parser");\nconst passport = require("passport");\n\nconst users = require("./routes/api/users");\nconst profile = require("./routes/api/profile");\nconst posts = require("./routes/api/posts");\nconst donate = require("./routes/api/donate");\nconst hobby = require("./routes/api/hobbies");\n\nconst app = express();\n\n// Body parser middleware\napp.use(bodyParser.urlencoded({ extended: false }));\napp.use(bodyParser.json());\n\n// DB config\nconst db = require("./config/keys").mongoURI;\n\n// Connect to DB through mongoose\nmongoose\n .connect(db)\n .then(() => console.log("MongoDB Connected"))\n .catch(err => console.log(err));\n\n//Passport middleware\napp.use(passport.initialize());\n\n//Passport config\nrequire("./config/passport.js")(passport);\n\n// Use routes\napp.use("/api/users", users);\napp.use("/api/profile", profile);\napp.use("/api/posts", posts);\napp.use("/api/donate", donate);\napp.use("/api/hobbies", hobby);\n\nconst port = process.env.PORT || 5000;\n\napp.listen(port, () => console.log("Server runnning on port", port));\nRun Code Online (Sandbox Code Playgroud)\n\n\n
在这篇文章中的路线:
router.post("/newhobby", (req, res) => {
//else create the new user in the DB using the data input by user
const newHobby = new Hobbies({
newhobby: req.body.newhobby,
classes: req.body.classes
});
});
Run Code Online (Sandbox Code Playgroud)
您不会向客户端/浏览器发送任何响应。因此,它坐在那里等待响应,但始终没有响应。我不知道您想要的响应是什么,但对于程序化请求,它可能只是简单的事情:
res.json({response: "ok"});
Run Code Online (Sandbox Code Playgroud)
或者
res.send("ok");
Run Code Online (Sandbox Code Playgroud)
如果这是从浏览器发布的表单,那么您将需要发回一个 HTML 页面以在提交表单后显示。
router.post("/newhobby", (req, res) => {
//else create the new user in the DB using the data input by user
const newHobby = new Hobbies({
newhobby: req.body.newhobby,
classes: req.body.classes
});
// do something here with newHobby
// then send a response
res.send("all done");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |