$http.post找不到问题

$http.post找不到问题,post,runtime-error,mean-stack,Post,Runtime Error,Mean Stack,大家下午好 我正在做一个学校项目,用平均堆栈创建一个应用程序,我遇到了路由问题。 我正在使用此处找到的登录和注册应用程序作为我工作的基础: 基本上,我无法将从创建的表单中获取的数据发布到数据库中。 如果我让创建部分工作,那么我将能够继续我的项目。代码如下: 控制器 (function () { 'use strict'; function Controller(UserService, NoteService, FlashService) { var vm =

大家下午好

我正在做一个学校项目,用平均堆栈创建一个应用程序,我遇到了路由问题。 我正在使用此处找到的登录和注册应用程序作为我工作的基础: 基本上,我无法将从创建的表单中获取的数据发布到数据库中。 如果我让创建部分工作,那么我将能够继续我的项目。代码如下:

控制器

(function () {
    'use strict';

    function Controller(UserService, NoteService, FlashService) {
        var vm = this;

        vm.note = null;


        function createNote() {
            NoteService.Create(vm.note, vm.user)
                .then(function () {
                    FlashService.Success('Note created'); 
                })
                .catch(function (error) {
                    FlashService.Error(error);
                });
        }

        vm.createNote = createNote;

        function initController() {...}

        initController();
    }

    angular.module('app').controller('Home.IndexController', Controller);

    }());
然后我们就有了我要呼叫的服务,NoteService

(function () {
    'use strict';

    function Service($http, $q) {
        var service = {};


        function Create(note, user) {
            return $http.post('/api/notes', note).then(handleSuccess, handleError);
        }

        service.Create = Create;

        return service;
    }

    angular
        .module('app')
        .factory('NoteService', Service);

}());
这是不起作用的$http.post函数:/api/notes找不到(浏览器控制台上的错误404)。我确信我的对象说明至少收到了这个请求,因为在前面添加一个console.log(note)会返回我在控制台中想要的内容

在服务器端,我有另一个用于处理错误的控制器:

var noteService = require('services/notes.service');

//routes
router.post('/create', createNote);

module.exports = router;

function createNote(req, res) {

    noteService.create(req.body)
        .then(function () {
            res.sendStatus(200);
        })
        .catch(function (err) {
            res.status(400).send(err);
        });

}
要与数据库讨论的服务器端服务:

var mongo = require('mongoskin');
var db = mongo.db(config.connectionString, { native_parser: true });
db.bind('notes');

var service = {};

service.create = create;

module.exports = service;

function create(noteParam, userParam) {...}
我的server.js文件如下所示:

require('rootpath')();

app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(session({ secret: config.secret, resave: false, saveUninitialized: true }));

// use JWT auth to secure the api
app.use('/api', expressJwt({ secret: config.secret }).unless({ path: ['/api/users/authenticate', '/api/users/register'] }));

// routes
app.use('/login', require('./controllers/login.controller'));
app.use('/register', require('./controllers/register.controller'));
app.use('/app', require('./controllers/app.controller'));
app.use('/api/users', require('./controllers/api/users.controller'));
app.use('/api/notes', require('./controllers/api/notes.controller'));

// make '/app' default route
app.get('/', function (req, res) {
    return res.redirect('/app');
});

// start server
var server = app.listen(3000, function () {
    console.log('Server listening at http://' + server.address().address + ':' + server.address().port);
});
我认为server.js文件中的这一行是:app.use('/api/notes',require('/controllers/api/notes.controller')) 将允许我的post请求将我的notes对象发送到服务器端,发送到“/api/notes”),但我不太确定这一切是如何协同工作的

我希望任何人都能帮助我,尽管我给出的代码很长。 我只是从卑鄙开始,不知道我做错了什么


提前感谢您的回答。

您能用较小的代码集复制问题吗?我试图减少它。剩下的所有内容都与不适用于我的createNote()函数有关!