使用 MEAN 堆栈做一个小项目。还有一个问题,发送post请求时,console.log显示错误。
错误状态:
可能未处理的拒绝:{"data":"TypeError: ContactList.insert 不是函数
我的服务器端代码如下:
var express = require("express");
var app = express();
var mongoose = require('mongoose');
var logger = require("morgan");
var bodyParser = require("body-parser");
var path = require("path");
mongoose.connect("mongodb://127.0.0.1:27017/contactlist");
var ContactList = require("./server/models/contactList.js");
app.use(logger('dev'));
app.use(bodyParser.json({limit:'50mb'}));
app.use(bodyParser.urlencoded({limit:'50mb', extended:true}));
app.use(express.static(path.join(__dirname, 'public'),{maxAge:1}));
app.get('/contactlist', function(req, res) {
console.log('I received a get request');
ContactList.find().exec(function(err, contacts) {
//console.log(contacts);
res.status(200).send(contacts);
});
});
app.post('/contactlist', function(req, res) {
console.log(req.body);
ContactList.insert(req.body, function(err, contacts) {
res.json(contacts);
});
});
app.listen(process.env.PORT, function() {
console.log(`Express server running on port ${process.env.PORT}`);
我不确定以下代码:
app.post('/contactlist', function(req, res) {
console.log(req.body);
ContactList.insert(req.body, function(err, contacts) {
res.json(contacts);
});
});
Controller 代码
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http) {
$http.get('/contactlist').then(function(response){
console.log("I got the data I requested");
$scope.contactList = response.data;
});
$scope.addContact = function() {
console.log($scope.contact);
$http.post('/contactlist', $scope.contact).then(function(response) {
console.log(response);
});
};
}]);
最佳答案
Mongoose 模型没有 .insert
方法,它们有 .create
:
ContactList.create(req.body, function(err, contacts) {
res.json(contacts);
});
确保您还添加了正确的错误处理。
关于javascript - Mongoose : "Possibly unhandled rejection"。 ContactList.insert 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44822103/