如何允许grunt-contrib-connect允许在静态文件上执行POST,PUT,DELETE方法?

达伦

我有一个静态项目,但我要打的是虚拟种子JSON文件,但是它仅允许我通过GET访问它们。这是我的grunt配置文件,有人知道我将如何允许POST吗?

module.exports = function(grunt) {
    // Configure
    grunt.config.set('connect', {
        server: {
            options: {
                hostname: '*',
                middleware: function(connect) {
                    return [
                        function(request, response, next) {
                            response.setHeader('Access-Control-Allow-Origin', '*');
                            response.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
                            response.setHeader('Access-Control-Allow-Headers', 'Content-Type');

                            return next();
                        },
                        connect.static(require('path').resolve('.'))
                    ];
                }
            }
        }
    });

    // Load Task
    grunt.loadNpmTasks('grunt-contrib-connect');
};
笑笑十年

这是我的解决方案,希望对您有所帮助,我只检查base [0],就可以扩展它。

重要的是使用:中间件。不印字,不推

connect: {
  dev: {
    options: {
      // 经过测试 connect插件会依照base的定义顺序检索文件
      // 这意味着如果存在相同文件,定义在前面的会优先返回
      base: ['app', '.'],
      port: 8888,
      // open: true,
      livereload: true,
      hostname: 'localhost',
      middleware: function (connect, options, middlewares) {
        var fs = require('fs');
        var path = require('path');
        var support = ['POST', 'PUT', 'DELETE'];
        middlewares.unshift(function (req, res, next) {
          // 单独处理POST请求 请求的地址必须是文件 这里没有进行rewrite处理
          if (support.indexOf(req.method.toUpperCase()) != -1) {
            var filepath = path.join(options.base[0], req.url);
            if (fs.existsSync(filepath) && fs.statSync(filepath).isFile()) {
              return res.end(fs.readFileSync(filepath));
            }
          }

          return next();
        });

        return middlewares;
      },
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

grunt-contrib-watch + sass:如何指定目标文件?

来自分类Dev

如何使用grunt-contrib-uglify也gzip js文件?

来自分类Dev

如何使grunt-contrib-copy不复制LESS文件?

来自分类Dev

如何使用grunt http服务器访问区域设置json文件(grunt-contrib-connect)

来自分类Dev

grunt-contrib-connect忽略任务选项

来自分类Dev

使用grunt-contrib-connect和grunt-contrib-watch进行实时重载

来自分类Dev

带livereload的grunt-contrib-watch,带vs,不带grunt-contrib-connect,带livereload

来自分类Dev

如何在不同的文件上使用不同的grunt-contrib-less选项

来自分类Dev

如果grunt-contrib-csslint引发错误,如何继续?如何排除某些文件?

来自分类Dev

仅在最近修改的文件上运行grunt-contrib-jshint

来自分类Dev

如何在grunt-contrib-copy文件重命名操作中删除原始文件?

来自分类Dev

如何获取Grunt-Contrib-Copy复制相对于给定源路径的文件/目录

来自分类Dev

如何配置grunt-contrib-uglify以最小化文件,同时保留目录结构

来自分类Dev

如何禁用grunt-contrib-cssmin联合?

来自分类Dev

使用grunt-contrib-connect指定标题

来自分类Dev

从grunt-contrib-connect请求对象获取数据

来自分类Dev

grunt-contrib-connect仅适用于keepalive

来自分类Dev

grunt-contrib-connect仅与keepalive一起使用

来自分类Dev

Mac Osx和rbenv上的Grunt Contrib Compass错误

来自分类Dev

grunt-contrib-copy-复制时忽略文件夹

来自分类Dev

grunt-contrib-compress排除点文件夹

来自分类Dev

在grunt-contrib-jade任务中加载外部文件

来自分类Dev

无法使用grunt-contrib-cssmin创建缩小的CSS文件

来自分类Dev

grunt-contrib-sass无法编译CSS文件

来自分类Dev

使用grunt-contrib-connect和grunt-connect-rewrite删除文件扩展名

来自分类Dev

如何仅在需要时使用grunt-contrib-watch和grunt-contrib-coffee编译CoffeeScript?

来自分类Dev

grunt-contrib-connect-致命错误:getaddrinfo ENOTFOUND my.website-如何设置自定义URL?

来自分类Dev

带有 grunt-contrib-less 的 Grunt 任务 - 如何编译多个样式表,同时保持其原始 .less 文件名

来自分类Dev

grunt-contrib-connect:仅root可访问,仅在CI服务器上

Related 相关文章

  1. 1

    grunt-contrib-watch + sass:如何指定目标文件?

  2. 2

    如何使用grunt-contrib-uglify也gzip js文件?

  3. 3

    如何使grunt-contrib-copy不复制LESS文件?

  4. 4

    如何使用grunt http服务器访问区域设置json文件(grunt-contrib-connect)

  5. 5

    grunt-contrib-connect忽略任务选项

  6. 6

    使用grunt-contrib-connect和grunt-contrib-watch进行实时重载

  7. 7

    带livereload的grunt-contrib-watch,带vs,不带grunt-contrib-connect,带livereload

  8. 8

    如何在不同的文件上使用不同的grunt-contrib-less选项

  9. 9

    如果grunt-contrib-csslint引发错误,如何继续?如何排除某些文件?

  10. 10

    仅在最近修改的文件上运行grunt-contrib-jshint

  11. 11

    如何在grunt-contrib-copy文件重命名操作中删除原始文件?

  12. 12

    如何获取Grunt-Contrib-Copy复制相对于给定源路径的文件/目录

  13. 13

    如何配置grunt-contrib-uglify以最小化文件,同时保留目录结构

  14. 14

    如何禁用grunt-contrib-cssmin联合?

  15. 15

    使用grunt-contrib-connect指定标题

  16. 16

    从grunt-contrib-connect请求对象获取数据

  17. 17

    grunt-contrib-connect仅适用于keepalive

  18. 18

    grunt-contrib-connect仅与keepalive一起使用

  19. 19

    Mac Osx和rbenv上的Grunt Contrib Compass错误

  20. 20

    grunt-contrib-copy-复制时忽略文件夹

  21. 21

    grunt-contrib-compress排除点文件夹

  22. 22

    在grunt-contrib-jade任务中加载外部文件

  23. 23

    无法使用grunt-contrib-cssmin创建缩小的CSS文件

  24. 24

    grunt-contrib-sass无法编译CSS文件

  25. 25

    使用grunt-contrib-connect和grunt-connect-rewrite删除文件扩展名

  26. 26

    如何仅在需要时使用grunt-contrib-watch和grunt-contrib-coffee编译CoffeeScript?

  27. 27

    grunt-contrib-connect-致命错误:getaddrinfo ENOTFOUND my.website-如何设置自定义URL?

  28. 28

    带有 grunt-contrib-less 的 Grunt 任务 - 如何编译多个样式表,同时保持其原始 .less 文件名

  29. 29

    grunt-contrib-connect:仅root可访问,仅在CI服务器上

热门标签

归档