Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用request js和jasmine测试带有文件上传的nodejs POST web服务?_Javascript_Json_Node.js_Mongodb_Jasmine - Fatal编程技术网

Javascript 如何使用request js和jasmine测试带有文件上传的nodejs POST web服务?

Javascript 如何使用request js和jasmine测试带有文件上传的nodejs POST web服务?,javascript,json,node.js,mongodb,jasmine,Javascript,Json,Node.js,Mongodb,Jasmine,我用nodeJS(express)创建了一个web服务,它接受一个JSON文件,读取它并将其内容作为文档存储在mongodb中 邮政路线运作良好。代码如下所示 var multipart = require('connect-multiparty'); var fs = require('fs'); router.post('/', multipartMiddleware, function(req, res) { fs.readFile(req.files.swagger.path, 'u

我用nodeJS(express)创建了一个web服务,它接受一个JSON文件,读取它并将其内容作为文档存储在mongodb中

邮政路线运作良好。代码如下所示

var multipart = require('connect-multiparty');
var fs = require('fs');
router.post('/', multipartMiddleware, function(req, res) {
  fs.readFile(req.files.swagger.path, 'utf8', function(err, data) {
    req.body.swagger = JSON.parse(data);
    .
    .
  });
});
describe("POST /", function() {

it("returns status code 200", function(done) {
  var req = request.post(base_url, function(error, response, body) {
        expect(response.statusCode).toBe(200);
  });

  var form = req.form();
  form.append('file','<FILE_DATA>', {
    filename : "sample.json",
    contentType : "text/plain"
  });
  console.log("Form", form);

  });
});
基本上,它从
req.files
中的JSON文件中提取数据,并放入
req.body
对象中

我需要在Jasmine规范文件上做同样的事情。我可以使用POSTman对web服务进行物理测试,但我需要使用jasmine通过规范文件对其进行测试。现在,我想检查web服务是否抛出了一个
200 OK
状态,但它抛出了一个
500

到目前为止,我的
jasmine节点
测试套件如下所示

var multipart = require('connect-multiparty');
var fs = require('fs');
router.post('/', multipartMiddleware, function(req, res) {
  fs.readFile(req.files.swagger.path, 'utf8', function(err, data) {
    req.body.swagger = JSON.parse(data);
    .
    .
  });
});
describe("POST /", function() {

it("returns status code 200", function(done) {
  var req = request.post(base_url, function(error, response, body) {
        expect(response.statusCode).toBe(200);
  });

  var form = req.form();
  form.append('file','<FILE_DATA>', {
    filename : "sample.json",
    contentType : "text/plain"
  });
  console.log("Form", form);

  });
});
描述(“POST/”,函数(){
它(“返回状态代码200”,函数(完成){
var req=request.post(基本url、函数(错误、响应、正文){
expect(response.statusCode).toBe(200);
});
var form=req.form();
append('文件',''{
文件名:“sample.json”,
contentType:“文本/普通”
});
控制台日志(“表格”,表格);
});
});

如何以编程方式将文件上载到nodejs服务器,以便从规范中的
req.files
中提取文件

您是否真的像您的服务器脚本所期望的那样调用字段“file”而不是“swagger”?