我正在将我的一个网站(http://maskedarmory.com)从LAMP(使用Laravel 4 MVC)转换为MEAN堆栈,这是迄今为止的一段旅程。
我已设法启动并运行着陆页,并将输入POST到Angular控制器,我将其路由到。
现在,我遇到的问题是让服务通过Angular中的POSTed数据发送到Express API。我一直在/ api / character URL路径上保留404 Not Found错误。
另外,如何访问工厂传递的Angular端的'characterData'变量?因为我试图在服务器端的'characterData'变量上执行console.log,我确信这超出了范围。
app / routes.js(快速路由)
// public/js/services/ArmoryService.js
angular.module('ArmoryService', []).
factory('Armory', function($http) {
return {
// Get the specified character by its profile ID.
get : function(id) {
return $http.get('/api/character/' + id);
},
// call to POST and create a new character armory.
create : function(characterData) {
return $http.post('/api/character', characterData);
}
}
});
app / routes.js(快速路由)
module.exports = function(app) {
app.post('/api/character', function(req, res) {
console.log(characterData);
});
app.get('/', function(req, res) {
res.sendfile('./public/index.html'); // load our public/index.html file
});
};
如果我在API的$ http.post之前执行console.log,'characterData'会包含它应该具有的所有信息。
我确信这是某种类型的路由问题,但如果能搞清楚,我会被诅咒。
提前感谢您的帮助!
答案 0 :(得分:0)
试试这个:
app.post('/api/character', function(req, res) {
console.log(JSON.stringify(req.body));
res.status(200).send('whatever you want to send back to angular side');
});
app.get('/api/character/:id', function(req, res) {
console.log(req.params.id);
res.status(200).send('whatever you want to send back to angular side'');
});