2017-08-06 72 views
0

嘿,我一直在试图从我的角度前端传递两个参数到节点api。不过,当我运行我的应用时,我的节点控制台上出现错误paramter value is missing or invalid。 下面是节点api代码在angular4服务中传递参数

app.post('/users', function(req, res) { 
var username = req.body.username; 
var orgName = req.body.orgName; 
logger.debug('End point : /users'); 
logger.debug('User name : ' + username); 
logger.debug('Org name : ' + orgName); 
if (!username) { 
    res.json(getErrorMessage('\'username\'')); 
    return; 
} 
if (!orgName) { 
    res.json(getErrorMessage('\'orgName\'')); 
    return; 
} 
var token = jwt.sign({ 
    exp: Math.floor(Date.now()/1000) + parseInt(config.jwt_expiretime), 
    username: username, 
    orgName: orgName 
}, app.get('secret')); 
helper.getRegisteredUsers(username, orgName, true).then(function(response) { 
    if (response && typeof response !== 'string') { 
     response.token = token; 
     res.json(response); 
    } else { 
     res.json({ 
      success: false, 
      message: response 
     }); 
    } 
}); 

});

这是我的角度服务代码。为了演示起见,我从角服务

getEnrollmentId(userName,org) { 
let headers = new Headers({ 'Content-Type': 'x-www-form-urlencoded' }); 
let options = new RequestOptions({ headers: headers }); 
let body = "'username=Barry&orgName=org2'"; 
return this.http.post('http://localhost:4000/users', body, options) 
.map((res: Response) => res.json()) 
.catch((error:any) => Observable.throw(error.json().error || 'Server error shit')); 

}传递出的伪值

当我尝试通过调用节点API和传递paramters使用curl查询acheive同样的事情,我能够成功发布数据并从api返回响应。下面这里是卷曲查询

curl -s -X POST \ 
http://localhost:4000/users \ 
-H "content-type: application/x-www-form-urlencoded" \ 
-d 'username=Jim&orgName=org1' 

我在我的角度服务做错了什么?

回答

1

传递参数的URL搜索参数,可以 下面的代码应该帮助

let body = new URLSearchParams(); 
body.set('username', username); 
body.set('orgName', orgName); 
+0

它没有工作。在我的节点api中,它正在接收这些参数的未定义值。以下是节点控制台的屏幕截图https://user-images.githubusercontent.com/26554206/29001906-f9664aac-7aae-11e7-9879-35f6128a2710.png –

+0

如何定义变量(username和orgName),它包含值。 –

+0

这里是要点链接https://gist.github.com/mohammadobaid1/fd809e4cf8ece1078a6f2d57cbfb5b19其中包含我的组件代码,它调用我的角度服务和角度前端HTML代码,从前端检索值。 –