【发布时间】:2017-10-28 05:20:26
【问题描述】:
我今天开始开发MERN 应用程序,并正在尝试编写restful api。首先我使用mlab 来存储我的mongodb 数据库。创建用户后,我已成功连接到该数据库。我可以手动创建一个collection 并将一些数据注入这个collection。然后我可以从我的server.js 文件中获取存储在此处的数据。
MongoClient.connect(db_url, (err, database) => {
if (err) return console.log(err);
var collection = database.collection('memories'); // Collection called memories
app.listen(3000, () => {
console.log("Listening on 3000");
});
});
这一切都很好,但我想把它提升到一个新的水平。我想为集合Memory 编写一个CRUD api。来自django,我想先创建我的model。因此,在我的models/memory.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MemorySchema = new Schema({
name: String,
description: String
});
module.exports = mongoose.model('Memory', MemorySchema);
然后我开始着手处理我的routes/api/api.js:
let router = require('express').Router();
let Memory = require('../../../models/memories');
router.use(function (req, res, next) {
console.log("Something is happening");
next(); // Request stops at middleware without next()
});
router.route('/memory')
.post(function (req, res) {
let memory = new Memory();
memory.name = req.body.name;
memory.description = req.body.description;
memory.save(function (err) {
if (err) {
res.send(err);
}
res.json({message: 'Memory Created'});
});
})
.get(function (req, res) {
res.json({message: 'First memory'});
});
module.exports = router;
在我的server.js 中,我称这个模块为:
const apiRoutes = require('./routes/api/api');
app.use('/api/', apiRoutes);
但是,在使用 postman 测试了 post api 之后,POST 请求只需要很长时间才能显示为 Could not get any response。但是,GET 请求有效。我错过了什么?
编辑:所以post 函数无法保存模型实例...
【问题讨论】:
标签: javascript node.js mongodb express mongoose