我正在向我发的API发送帖子请求。 post请求发送一些数据存储在我的本地数据库中。
var Loc = require('../models/locationSchema');
module.exports.locationsCreate = function(req, res){
console.log(req.body.name);
console.log(req.body.address);
Loc.create({
name: req.body.name,
address: req.body.address,
}, function(err, data){
console.log('inside callback!');
if (err){
res.send('error');
} else {
res.send('success');
}
});
console.log('reached end of function');
};
这是架构,
var locationSchema = new mongoose.Schema({
name: {type: String, required: true},
address: {type: String, required: true},
});
module.exports = mongoose.model('Location', locationSchema);
猫鼬正确连接。我的路由器正在正确处理发布请求。
我正在使用邮递员发送一个邮件请求,其中包含姓名和地址。没有任何事情发生,几秒钟后,我得到'无法得到答复'。没有任何东西被添加到数据库中。
控制台打印名称,地址,然后“达到功能结束”。它从不显示'内部回调'
答案 0 :(得分:0)
我看到你的对象中有几个尾随逗号(对象中最后一个元素之后的逗号),尝试删除它们,因为这在JSON中是不允许的,它们会影响你的代码的执行(这里的函数)案例),
在架构中:address: {type: String, required: true}, // remove the comma at the end
并在Loc.create中:address: req.body.address, // remove the comma at the end
答案 1 :(得分:0)
您的代码看起来很完美,除非您没有包含mongoose模块。因此,您无法使用猫鼬的create
方法。
包括像
var mongoose = require('mongoose');
因此,您的代码应如下所示:
var Loc = require('../models/locationSchema');
var mongoose = require('mongoose');
module.exports.locationsCreate = function(req, res){
console.log(req.body.name);
console.log(req.body.address);
Loc.create({
name: req.body.name,
address: req.body.address,
}, function(err, data){
console.log('inside callback!');
if (err){
res.send('error');
} else {
res.send('success');
}
});
console.log('reached end of function');
};
希望它有所帮助!谢谢!
答案 2 :(得分:0)
您需要创建模型/架构的新对象。
var LocationSchema = require('../models/locationSchema');
module.exports.locationsCreate = function(req, res){
console.log(req.body.name); console.log(req.body.address);
var Loc = new LocationSchema();
Loc.create({
name: req.body.name,
address: req.body.address, }, function(err, data){
console.log('inside callback!');
if (err){
res.send('error');
} else {
res.send('success');
} }); console.log('reached end of function'); };