首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用"request“模块的node.js中使用POST操作时出现故障

在使用"request“模块的node.js中使用POST操作时出现故障
EN

Stack Overflow用户
提问于 2018-08-01 19:53:48
回答 2查看 314关注 0票数 0

我正在使用node js,jasmine框架来进行API自动化测试。我有个POST手术。我使用npm-request来做这个操作。

我在测试用例中的代码如下

代码语言:javascript
复制
describe('Verification of BS_057_LockDN',()=>{

    it('Verify success response for BS_057_LockDN',function(done){
        var path=require('path');
        let inputJson=require(path.resolve('./inputRequests/lockDNInput.json'));
        let endpoint=require(path.resolve('./config/endpointLockDN.json'));

        const fetch=require('node-fetch');

        let baseUrl=endpoint.url;
        let apikey=endpoint.apikey;

    let fullUrlWithQueryParameters= baseUrl + "?apikey=" + apikey

        console.log(fullUrlWithQueryParameters);
        console.log(inputJson);
        console.log("test");


        var request = require('request');

     request.post(fullUrlWithQueryParameters,inputJson,
    function (error, response, body) {
        console.log('ew fu----------------------------------------------')
        if (error) 
            {

                console.log(error);
                return done();
            }
            console.log('first');
            console.log('HTTP STATUS CODE:'+ response.statusCode);
            console.log('second');
            console.log(body);
            expect(body).not.toBeUndefined();
            expect(body.Header.MsgType_T).toBe('RESPONSE');
            done();
    }
);

    },1000*60*60)


})

当我运行这个测试用例时,我得到以下错误

代码语言:javascript
复制
Failures:
1) Verification of BS_057_LockDN Verify success response for BS_057_LockDN
  Message:
    TypeError: Cannot read property 'MsgType_T' of undefined
  Stack:
        at <Jasmine>
        at Request._callback (F:\johny\node_from_home\spec\BS_057_LockDN.spec.js:44:32)
        at Request.self.callback (F:\johny\node_from_home\node_modules\request\request.js:185:22)
        at emitTwo (events.js:126:13)
        at Request.emit (events.js:214:7)
        at Request.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1157:10)
        at emitOne (events.js:116:13)
        at Request.emit (events.js:211:7)
        at IncomingMessage.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1079:12)
        at Object.onceWrapper (events.js:313:30)
        at emitNone (events.js:111:20)
  Message:
    Failed: Cannot read property 'MsgType_T' of undefined
  Stack:
        at <Jasmine>
        at Request._callback (F:\johny\node_from_home\spec\BS_057_LockDN.spec.js:44:32)
        at Request.self.callback (F:\johny\node_from_home\node_modules\request\request.js:185:22)
        at emitTwo (events.js:126:13)
        at Request.emit (events.js:214:7)
        at Request.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1157:10)
        at emitOne (events.js:116:13)
        at Request.emit (events.js:211:7)
        at IncomingMessage.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1079:12)
        at Object.onceWrapper (events.js:313:30)
        at emitNone (events.js:111:20)

1 spec, 1 failure
Finished in 60.348 seconds
Randomized with seed 13965 (jasmine --random=true --seed=13965)

我不确定为什么我的POST操作没有定义。我使用的方法是正确的吗?

我已经附加了SOAP ui请求和响应。

EN

回答 2

Stack Overflow用户

发布于 2018-08-01 20:21:07

您的请求似乎是可以的。但是您正在尝试从body中未定义的字段读取数据

代码语言:javascript
复制
expect(body.Header.MsgType_T).toBe('RESPONSE');

这里"Header“不存在于body中。

票数 0
EN

Stack Overflow用户

发布于 2018-08-01 20:50:52

在没有检查的情况下,永远不要进行两步对象访问。

在这里,您正在访问"expect(body.Header.MsgType_T).toBe('RESPONSE');“中的"body.Header.MsgType_T”,而没有检查"body.Header“是否存在。

希望这能帮上忙..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51632639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档