Node.js 获取POST to Express.js端点上的ng模型值
我正在使用AngularJS创建Node.js应用程序 我想做一个简单的职位,使用角度。这篇文章应该在我的服务器上发布几个值,在那里我可以使用Node.js 获取POST to Express.js端点上的ng模型值,node.js,angularjs,express,Node.js,Angularjs,Express,我正在使用AngularJS创建Node.js应用程序 我想做一个简单的职位,使用角度。这篇文章应该在我的服务器上发布几个值,在那里我可以使用console.log查看它们 在我的HTML代码中,我使用ng模型和一个按钮构建它,该按钮具有ng单击 我可以告诉我的Node.js服务器正在被攻击,因为它在控制台中输出了名为的帖子 然而,我一直在尝试阅读有关如何读取POST值的内容,但我还没有找到解决方案 如何修改我的代码以在我的Express.js端点中读取serialKey和gameTitle 我
console.log
查看它们
在我的HTML代码中,我使用ng模型和一个按钮构建它,该按钮具有ng单击
我可以告诉我的Node.js服务器正在被攻击,因为它在控制台中输出了名为
的帖子
然而,我一直在尝试阅读有关如何读取POST值的内容,但我还没有找到解决方案
如何修改我的代码以在我的Express.js端点中读取serialKey
和gameTitle
我的HTML代码:
<div class="input-group" ng-controller="CreateController">
<p>Serial key:<br/>
<input class="form-control" ng-model="serialKey" />
</p>
<p>Game:<br/>
<input class="form-control" ng-model="gameTitle" />
</p>
<span class="input-group-btn">
<button class="btn btn-default"
ng-click="postNewIsbn(serialKey,gameTitle)">Add</button>
</span>
</div>
Express.js端点
app.post('/api/serials',function(req,res){
console.log(req.body);
console.log('post called');
});
请求参数(名称)
尝试检索随请求传递的数据时,req.param()
函数检查以下内容以查找参数:
req.params
req.body
请求查询
见文件
另外,尝试在POST请求中将内容类型头显式设置为“application/json”。设置内容类型头似乎有问题。在angular应用程序中,您可以在初始化模块后或使用此行在配置函数中为post请求设置DefaultHeader
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
请记住,无论您在何处设置此标头,都要注入$httpProvider依赖项
更新
在这种情况下,您可能需要配置express,以便将bodyParser用于此行:
app.use(express.bodyParser());
在你的ng click函数中,你得到了串行和游戏参数的值?你在req.body中得到了什么?@V31当我说console.log(req.body)body解析器中间件Hm时,我得到了未定义的值。如果我说“console.log(req.param('gameTitle')”,并且我确保Angular应用程序中的ng模型和JSON post被称为gameTitle,我仍然得到未定义的。。知道为什么吗?请确定,$http.post success回调是否在请求完成后运行?更好的是,您可以从浏览器控制台发布请求/响应数据吗?在您的示例中,您的post变量是gametitle而不是gametitle
app.use(express.bodyParser());