【问题标题】:router.post returns error "undefined is not a function" .Using mongo and express.jsrouter.post 返回错误“未定义不是函数”。使用 mongo 和 express.js
【发布时间】:2016-02-17 17:36:49
【问题描述】:

我正在尝试使用来自LINK 的文件构建一个应用程序。我发现发布是代码中断的地方。快递js 改变了还是语法错误?

router.post 到达 Maid.registerMaid(new Maid({... ) 后中断。我可以使用 .save() 使其工作,但谁能解释为什么这个回调会响起?

把代码放在下面.. 对不起,我是 M.E.A.N 的初学者

API.js

var express = require('express'),
router = express.Router(),
passport = require('passport');
User = require('../models/user.js');
Maid = require('../models/maid.js');

router.post('/AddMaid', function(req, res) {
 console.log(req.body, req.body.FirstName,req.body.LastName);
Maid.registerMaid(new Maid({ FirstName: req.body.FirstName }), ({LastName: req.body.LastName}), function(err, account) {
    if (err) {
        return res.status(500).json({err : err})
    }
    return res.status(200).json({status: 'Registration successful!'});
});

});

Services.js

angular.module('myApp').factory('AuthService',['$q', '$timeout', '$http',     function ($q, $timeout, $http) {

var user = null;
return ({
  isLoggedIn: isLoggedIn,
  getUserStatus: getUserStatus,
  login: login,
  logout: logout,
  register: register,
  registerMaid: registerMaid
});


function registerMaid(Fname, Lname) { 
    var deferred = $q.defer();

    $http.post('/maid/AddMaid', {
        FirstName : Fname,
        LastName : Lname                
    }).success(function(data, status) {

        if (status === 200 && data.status) {
            deferred.resolve();
        } else {
            deferred.reject();
        }

    }).error(function(data) {
        debugger;
        alert("Error in Services AddMaid");
        deferred.reject();
    });
    return deferred.promise;
} }]); 

Controllers.js

angular.module('myApp').controller('AddMaidController', ['$scope',        '$http','$location', 'AuthService', function($scope, $http,$location,     AuthService) {  
console.log(AuthService.getUserStatus());

$scope.register = function () {
    $scope.error = false;
    $scope.disabled = true;   
         AuthService.registerMaid($scope.registerForm.FirstName,$scope.registerForm.LastName).then(function () {            
        $scope.disabled = false;
        $scope.registerForm = {};

    }).catch(function () {
        $scope.error = true;
        $scope.errorMessage = "Something went wrong!";
    });        
};}]);

maid.js

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

var Maid = new Schema({
First_Name: String,
Last_Name: String
});

module.exports = mongoose.model('maids', Maid); 

【问题讨论】:

  • 你能再写一点代码吗?
  • 对不起.. 但我不知道代码的哪一部分有错误,所以粘贴了几乎整个代码

标签: angularjs node.js mongodb express mongoose


【解决方案1】:

首先,您全局定义了用户和女佣模块,这不是一个好习惯。 发生错误是因为您的 Maid 模块(服务器端的 Maid 模型,即 Nodejs)没有 registerMaid 方法。您需要改用Maid.create

【讨论】:

    猜你喜欢
    • 2015-02-13
    • 2014-11-11
    • 2014-09-13
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多