这可能是其中一个问题,不需要太多解释我只是没有在其他地方找到答案。
我是AngularJS和NodeJS的新手。我做了一些教程,现在我尝试把东西放在一起。
在nodeJS中,当我做这样的事情时:
app.get('/db-get-extra-bookings', function(req, res) {
res.json({name: "hello"});
});
比AngularJS我可以GET
即使/db-insert-extra-bookings
不是一个虚构的页面
return $http
.get(formURL)
.then(function(response){
// some code
});
但是当我想从AngularJS发布一些东西到我的NodeJs环境时
return $http
.post(formJson, JSON.stringify(bookings))
.then(function(response){
//some code
});
的NodeJS:
app.get('/db-insert-extra-bookings', function(req, res) {
// do something with the request
});
我的webbrowser控制台出现404错误。
base.js:5 POST http://localhost:3000/db-insert-extra-bookings 404 (Not Found)
这听起来像是正常的行为,但是当我404 error
到非现有页面时为什么会得到POST
,为什么我在GET
时获得我想要的数据从一个不存在的页面?
我是否真的需要将空白页面发布到?
答案 0 :(得分:-1)
我不是NodeJS的专家,但是如果你想创建一个回答任何HTTP方法的路线,你应该使用app.all()
而不是app.get()
。在您的代码中,您只是为GET
个请求创建路由,这就是为什么它适用于GET而不适用于POST的原因。看看这个reference
答案 1 :(得分:-1)
为了澄清,NodeJS端点(包括GET)不需要提供HTML页面即可工作。您可以发送任何类型的HTTP响应,例如纯文本,JSON,HTML等 - 使用适当的'Content-Type'
标题。
在NodeJS路线中:
app.post('/db-get-extra-bookings', function(req, res) {
res.json({name: "hello"});
});
现在使用您的角度代码(您不需要JSON.stringify
):
// Change localhost:9000 with your hostname
$http.post('http://localhost:9000/db-get-extra-bookings', bookings)
.success(function (data, status, headers, config) {
// console.log(data);
})
.error(function (data, status, headers, config) {
// console.log(status);
});
,请记住重新启动NodeJS服务器以使更改生效。