【问题标题】:Passing parameters in angular4 services在 angular4 服务中传递参数
【发布时间】:2021-07-29 23:47:36
【问题描述】:

我一直在尝试将两个参数从我的角度前端传递到节点 api。但是,当我运行我的应用程序时,我的节点控制台上出现paramter value is missing or invalid 错误。 下面是节点api代码

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'));

}

当我尝试通过调用 node api 并传递参数来使用 curl 查询来实现相同的目标时,我能够成功地发布数据并从 api 返回响应。下面是 curl 查询

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

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

【问题讨论】:

    标签: node.js angular angular-services


    【解决方案1】:

    将参数作为 url 搜索参数传递, 下面的代码应该有帮助

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

    【讨论】:

    • 没用。在我的节点 api 中,它正在接收这些参数的未定义值。这是节点控制台的截图user-images.githubusercontent.com/26554206/…
    • 你如何定义变量(用户名和组织名),它保存了值。
    • 这里是要点链接gist.github.com/mohammadobaid1/fd809e4cf8ece1078a6f2d57cbfb5b19,其中包含调用我的角度服务的组件代码和从前端检索值的角度前端html代码。
    • html 是针对同一个组件的,你为什么使用@input ? .它是与 angular 的简单双向绑定,将它们定义为简单的公共变量,它将通过值绑定到前端,您将不会得到未定义的变量
    • 我在前端 html 代码上做错了,因为当我从组件中打印这些变量值时,它显示为 undefined。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多