绑定Sails.js路由到模型蓝图行动通过请求正文

我正在使用sails.js v0.11.1。 在我的routes.js文件中,我写了这条路线:

'POST /user' : { model: 'user', blueprint: 'create' }, 

我正在发送一个POST请求(通过邮递员 )给/user与身体:

 { userName : "firstUser", password : "secretPwd5779", firstName : "William", lastName : "Askey" } 

但我得到这个回应:

 { "error": "E_VALIDATION", "status": 400, "summary": "4 attributes are invalid", "model": "User", "invalidAttributes": { "userName": [ { "rule": "string", "message": "`undefined` should be a string (instead of \"null\", which is a object)" }, { "rule": "required", "message": "\"required\" validation rule failed for input: null" } ], "password": [ { "rule": "string", "message": "`undefined` should be a string (instead of \"null\", which is a object)" }, { "rule": "required", "message": "\"required\" validation rule failed for input: null" } ], "firstName": [ { "rule": "string", "message": "`undefined` should be a string (instead of \"null\", which is a object)" }, { "rule": "required", "message": "\"required\" validation rule failed for input: null" } ], "lastName": [ { "rule": "string", "message": "`undefined` should be a string (instead of \"null\", which is a object)" }, { "rule": "required", "message": "\"required\" validation rule failed for input: null" } ] } } 

根据Sails.js文档,我已经正确地编写了路由。

通过URL参数(即请求/user?userName=firstUser&password=secretPwd5779&firstName=William&lastName=Askey工作得很好。如何在不通过URL参数发送数据的情况下如何工作?

标准方式:

这是你的forms:

 <form class="ajax" method="post" action="/user"> <input name="userName"> <input name="password"> <input name="firstName"> <input name="lastName"> <button type="submit">CREATE</button> </form> <div id="result"></div> 

这是前端js部分(jquery是必需的):

 $(function(){ $('form.ajax').on('submit', function(e){ e.preventDefault(); var method = $(this).attr('method'); var url = $(this).attr('action'); var data = $(this).serializeArray(); $.ajax({ url: url, method: method, data: data, success: function(response) { $('#result').html(JSON.stringify(response)); }, error: function() { alert('Error! Try again later.'); } }); }); }); 

但是你发送的是json body,所以必须启用将json body转换为request.body的中间件。
它被称为body-parser。 看截图: http : //joxi.ru/752aJJbhj45DA0

@ num8er的回答对我来说很有见地(作为sailsjs / node程序员),但是我的问题实际上是由stream氓pm2实例引起的。

我正在做的请求被发送到一个stream氓实例,其中我写的路由/更改没有反映在代码中。 希望这可以帮助那里的人。