Node.js 获取POST to Express.js端点上的ng模型值

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 我

我正在使用AngularJS创建Node.js应用程序

我想做一个简单的职位,使用角度。这篇文章应该在我的服务器上发布几个值,在那里我可以使用
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());