小编Rob*_*Rob的帖子

在全球范围内扩展jQuery ajax的成功

我正在尝试创建一个在ajax成功回调之前调用的全局处理程序.我用我的应用程序做了很多ajax调用,如果是一个错误我返回一个特定的结构,所以我需要在成功运行之前运行一些东西来检查响应数据,看它是否包含错误代码,如1/0

样品回复

{"code": "0", "message": "your code is broken"}
Run Code Online (Sandbox Code Playgroud)

要么

{"code": "1", "data": "return some data"}
Run Code Online (Sandbox Code Playgroud)

我无法在开箱即用的jQuery中找到一种方法,查看prefilters,ajaxSetup和其他可用的方法,但是它们并没有完全解决它,我能想出的赌注是攻击ajax方法本身一点点:

var oFn = $.ajax;

$.ajax = function(options, a, b, c)
{
    if(options.success)
    {
        var oFn2 = options.success;

        options.success = function(response)
        {
            //check the response code and do some processing
            ajaxPostProcess(response);

            //if no error run the success function otherwise don't bother
            if(response.code > 0) oFn2(response);
        }
    }

    oFn(options, a, b, c);
};
Run Code Online (Sandbox Code Playgroud)

我已经使用了一段时间它工作正常,但想知道是否有更好的方法来做到这一点,或者我在jQuery文档中遗漏的东西.

javascript ajax jquery

5
推荐指数
2
解决办法
9731
查看次数

是否有必要在 Node.js 中设置 Content-Type?

刚开始使用 Node.js,在看到几个例子后,我发现通常Content-Type在返回一些内容之前设置。

对于 HTML,通常是这样的:

res.writeHead(200, {'Content-Type': 'text/html'});
res.write(html);
res.end();
Run Code Online (Sandbox Code Playgroud)

对于图像:

res.writeHead(200, {'Content-Type': 'image/png'});
res.write(img, 'binary');
res.end();
Run Code Online (Sandbox Code Playgroud)

我阅读了.write()的文档,它说如果没有指定标题“它将切换到隐式标题模式并刷新隐式标题”

通过一些测试,我发现我可以像这样写一行:

res.end(html); // or
res.end(img);
Run Code Online (Sandbox Code Playgroud)

这两个工作正常。我还使用本地 Apache 服务器进行了测试,当我查看加载图像时设置的标头时,那里没有Content-Type设置标头。

我需要麻烦设置它们吗?如果我不这样做,可能会出现什么情况或错误?

javascript content-type http-headers node.js

5
推荐指数
1
解决办法
6284
查看次数

Node.js承诺与mongoskin

我正在尝试避免在进行mongodb查询时使用回调.我正在使用mongoskin来打电话:

req.db.collection('users').find().toArray(function (err, doc) {
  res.json(doc);
});
Run Code Online (Sandbox Code Playgroud)

在许多情况下,我需要进行多个查询,所以我想使用Node.js promise库,但我不知道如何将这些函数包装为promises.我看到的大多数例子对于像readFile我这样的事情都是微不足道的,我猜在这种情况下我需要以某种方式包装到Array?可以这样做,还是必须由mongoskin实现?

一个例子可以是任何一组回调,查找/插入,查找/查找/插入,查找/更新:

req.db.collection('users').find().toArray(function (err, doc) {
  if (doc) {
    req.db.collection('users').find().toArray(function (err, doc) {
      // etc...
    });
  }
  else {
    // err
  }
});
Run Code Online (Sandbox Code Playgroud)

mongodb node.js promise express mongoskin

5
推荐指数
1
解决办法
3371
查看次数

Laravel,如何确定查询构建器是否已包含"订单"?

如果关系还没有订单,我正试图去默认订单.但如果确实如此,我不使用默认值.

$q = $this->items();

if (empty($q->orders)) {
    $q = $q->order();
}
Run Code Online (Sandbox Code Playgroud)

请注意,这order()只是一个BaseModel类中的默认方法.出于某种原因,当我尝试orders在查询构建器上调用该属性时,它表示Undefined property即使它是类中的公共属性Builder.

不知道为什么,或者我如何检查这个.

编辑:

我在路线中设置了一个完整的例子:

class Test extends \Illuminate\Database\Eloquent\Model {}

$router->get('/test', function () {
    $test = new Test;
    $q = $test->select('id')->orderBy('id', 'desc');
    $bindings = $q->getRawBindings();
    var_dump($bindings);
    return 'test';
});
Run Code Online (Sandbox Code Playgroud)

转储只是吐出查询构建器对象而不是绑定?

php laravel eloquent laravel-5

5
推荐指数
1
解决办法
1506
查看次数

Lumen中的隐式路由模型绑定?

我正在尝试在 Lumen 中使用隐式路由模型绑定,但似乎不起作用。

反正有没有启用这个?

$app->get('/users/{user}', 'UsersController@get');
Run Code Online (Sandbox Code Playgroud)

它只是返回值,user但不是类型提示它并返回模型。

php laravel lumen

5
推荐指数
2
解决办法
4970
查看次数

插件中的Vue.js绑定上下文?

我正在尝试在Vue.js中创建一个简单的插件来包装vue-resource插件以跟踪请求的状态.

function State() {}

State.prototype.post = function (ctx, name, url, data, successCB, errorCB) {
    var options = {};

    if (errorCB) {
        options.error = function (resp) {
            ctx[name] = 'error';

            return errorCB(resp);
        };
    }

    ctx[name] = 'sending';

    ctx.$http.post(url, data, function (res, code, req) {
        ctx[name] = 'sent';

        return successCB(res, code, req);
    }, options);
};

function install(Vue) {
    Object.defineProperties(Vue.prototype, {
        $state: {
            get: function () {
                return new State;
                // return Vue.state.bind({$vm: this});
            }
        }
    });
}

module.exports = install; …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-resource

5
推荐指数
1
解决办法
2653
查看次数

如何在 Webpack 中缩小文件?

我不敢相信我必须问这个问题,但我们开始了。

如何使用 Webpack 4 缩小文件?

似乎默认喜欢添加所有这些垃圾。

/******/ (function(modules) { // webpackBootstrap
/******/        // The module cache
/******/        var installedModules = {};
/******/
/******/        // The require function
/******/        function __webpack_require__(moduleId) {
/******/
/******/                // Check if module is in cache
/******/                if(installedModules[moduleId]) {
/******/                        return installedModules[moduleId].exports;
/******/                }
/******/                // Create a new module (and put it into the cache)
/******/                var module = installedModules[moduleId] = {
/******/                        i: moduleId,
/******/                        l: false,
/******/                        exports: {}
/******/                };

...

Run Code Online (Sandbox Code Playgroud)

我只想要一个文件输入和一个缩小的文件输出。绝对没有添加额外的垃圾。 …

javascript webpack-4

5
推荐指数
1
解决办法
133
查看次数

Sequelize include - 不包含(删除)透视数据

我正在使用节点的 Sequelize 包。我有一个典型的包括人与多关系。

Item.findAll({
    include: {model: Blah: as 'blahs'}
});
Run Code Online (Sandbox Code Playgroud)

一切正常,但它返回带有每个子项目的枢轴数据的集合。我不需要它。有什么方法可以禁用它或指定所需的数据透视字段吗?

javascript node.js sequelize.js

4
推荐指数
1
解决办法
1662
查看次数

在 Laravel 验证规则中使用模型范围

我有一个这样的规则:

Rule::exists('tokens', 'key')
    ->where(function ($q) {
        $q->where('state', 'unused');
    })
Run Code Online (Sandbox Code Playgroud)

但是我正在尝试访问实际的 Token 模型范围,所以我可以只做->unused()而不是重复我的查询。

Rule::exists(\App\Models\Token::class, 'key')
    ->where(function ($q) {
        $q->unused();
    })
Run Code Online (Sandbox Code Playgroud)

它似乎获得了一个查询构建器,但不是来自Token模型。

我已经尝试了一些变体,将Token模型作为参数而不是tokens表名传入,但它只会为call to undefined method.

有没有办法做到这一点?

php laravel laravel-5 laravel-validation

4
推荐指数
1
解决办法
1445
查看次数

IE 的 Webpack 构建失败 (11)

尝试设置 webpack 来构建我的.js和.vue文件。

似乎没有将_name() {}样式函数转换为常规 JavaScript。

认为它应该开箱即用,除非另有说明,否则直接进入 commons js。

不知道为什么,它只在 IE 中崩溃,并出现一些关于分号不合适的通用 JS 语法错误。

我想一些小旗子,设置,某事,某处。

在这里寻找一些建议。

过时

<script>
    export default {
        computed: {
            _name() {
                return 'blah';
            }
        }
    };
</script>
Run Code Online (Sandbox Code Playgroud)

包.json

"@babel/core": "7.0.0-beta.42",
"@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.42",
"@babel/preset-env": "7.0.0-beta.42",
"babel-loader": "8.0.0-beta.2",

"vue-loader": "9.5.1",

"vue-style-loader": "1.0.0",
"sass-loader": "3.2.3",
"node-sass": "^4.1.1",
"css-loader": "0.25.0",
"style-loader": "0.13.1",
"vue-html-loader": "1.2.3",
"file-loader": "^0.8.4",

"webpack": "3.4.1",
"webpack-dev-server": "1.16.1",
"webpack-stream": "3.2.0",
"copy-webpack-plugin": "3.0.1",
"replace-webpack-plugin": "0.1.2",
"uglifyjs-webpack-plugin": "1.2.7"
Run Code Online (Sandbox Code Playgroud)

配置

entry: [__dirname + '/../src/bootstrap.js'],

output: …
Run Code Online (Sandbox Code Playgroud)

webpack vue.js babeljs babel-loader

4
推荐指数
1
解决办法
9668
查看次数