Gruntjs 用于测试文件上载的grunt connect中间件

Gruntjs 用于测试文件上载的grunt connect中间件,gruntjs,connect,Gruntjs,Connect,如何使用grunt connect和livereload测试将文件上载到服务器 我在用约曼和角形种子做我的项目。要求之一是能够将文件上载到服务器。我希望能够保留当前设置中包含的所有内容,而不是为项目设置一些外部服务器 此解决方案将中间件直接添加到Gruntfile.js中,用于grunt connect 首先,它加载,这使得解析上传的文件和表单元素更加容易 接下来,它在“/upload”处设置一个端点。这将是开发和测试期间使用的路线。此中间件返回带有文件属性的基本响应 最后,Yeoman自动配置

如何使用grunt connect和livereload测试将文件上载到服务器

我在用约曼和角形种子做我的项目。要求之一是能够将文件上载到服务器。我希望能够保留当前设置中包含的所有内容,而不是为项目设置一些外部服务器

此解决方案将中间件直接添加到Gruntfile.js中,用于grunt connect

首先,它加载,这使得解析上传的文件和表单元素更加容易

接下来,它在“/upload”处设置一个端点。这将是开发和测试期间使用的路线。此中间件返回带有文件属性的基本响应


最后,Yeoman自动配置的静态路由被附加到中间件列表中,并返回到grunt connect。

用于向grunt connect添加文件上载处理程序的配置属性

livereload: {
  options: {
    open: true,
    base: [ '.tmp', '<%= yeoman.app %>' ],
    middleware: function (connect, options) {
      var middlewares = [

        connect().use(connect.bodyParser({ uploadDir: '.tmp' })),
        connect().use('/upload', function(req, res, next) {
          /*
          console.log(req.files); // files properties
          console.log(req.body); // form properties
          */
          res.setHeader('Content-Type', 'application/json');

          // response with basic file stats
          res.end(JSON.stringify({ 
            'size': req.files.file.size, 
            'path' : req.files.file.path, 
            'other' : null }));
        })
      ];

      // add the static paths in options.base
      options.base.forEach(function (base) {
        middlewares.push(connect.static(base));
      });

      return middlewares;
    }
  }
}
livereload:{
选项:{
开放:是的,
基数:['.tmp',''],
中间件:功能(连接、选项){
var中间件=[
connect().use(connect.bodyParser({uploadDir:'.tmp'})),
connect().使用('/upload',函数(req、res、next){
/*
console.log(req.files);//文件属性
console.log(req.body);//表单属性
*/
res.setHeader('Content-Type','application/json');
//使用基本文件统计信息进行响应
res.end(JSON.stringify({
“大小”:req.files.file.size,
“路径”:req.files.file.path,
'other':null});
})
];
//在options.base中添加静态路径
options.base.forEach(函数(基){
中间件。推送(连接。静态(基础));
});
退货;
}
}
}

我尝试了这一点,但出现了一个错误:POST 405(不允许使用方法)