Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 如何在无服务器框架中使用jquery?_Javascript_Jquery_Lambda_Aws Lambda_Serverless Framework - Fatal编程技术网

Javascript 如何在无服务器框架中使用jquery?

Javascript 如何在无服务器框架中使用jquery?,javascript,jquery,lambda,aws-lambda,serverless-framework,Javascript,Jquery,Lambda,Aws Lambda,Serverless Framework,我想在我的无服务器lambda项目中使用jquerydeferred方法。但是,在要求jquery和jquery ui都作为依赖项之后,当我尝试使用jquery库时,会发生以下错误?我不熟悉serverless和lambda,因此请参阅下面的handler.js函数 TypeError: $.each is not a function at /vagrant/project/node_modules/jquery-ui/ui/widget.js:690:3 at widgetUuid (/va

我想在我的无服务器lambda项目中使用jquerydeferred方法。但是,在要求jquery和jquery ui都作为依赖项之后,当我尝试使用jquery库时,会发生以下错误?我不熟悉serverless和lambda,因此请参阅下面的handler.js函数

TypeError: $.each is not a function
at /vagrant/project/node_modules/jquery-ui/ui/widget.js:690:3
at widgetUuid (/vagrant/project/node_modules/jquery-ui/ui/widget.js:24:3)
at Object.<anonymous> (/vagrant/project/node_modules/jquery-ui/ui/widget.js:26:2)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/vagrant/project/handler.js:4:19)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at AwsInvokeLocal.invokeLocalNodeJs (/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:156:33)
at AwsInvokeLocal.invokeLocal (/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:114:19)
at AwsInvokeLocal.tryCatcher (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:693:18)
at Async._drainQueue (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:800:20)
at tryOnImmediate (timers.js:762:5)
at processImmediate [as _immediateCallback] (timers.js:733:5)
model.js

var JsonFile = require('jsonfile');
var $ = global.jQueryUI;

module.exports = {
    init : function() {
        var self = this;

        self.fetch_file().done(function(file){
             console.log(file);
        });
    },

    fetch_file : function(){
        var deferred = $.Deferred();
        JsonFile.readFile('path to file', function (err, file) {
            deferred.resolve(file);
        });

        return $.when(deferred).promise();
    }
};
package.json

{
"private": true,
  "dependencies": {
    "avro-js": "^1.8.2",
    "aws-sdk": "^2.88.0",
    "jquery": "^3.2.1",
    "jquery-ui": "^1.12.1",
    "jsonfile": "^3.0.1"
  },
  "name": "project",
  "version": "0.1.0"
}
在要求使用Jquery而不是JqueryUI之后,我得到以下异常:

    TypeError: $.Deferred is not a function
    at Object.fetch_schema (/vagrant/project/resources/model.js:17:26)
    at Object.init (/vagrant/project/resources/model.js:11:14)
    at module.exports.pixel_event_lambda_producer (/vagrant/project/handler.js:9:10)
    at AwsInvokeLocal.invokeLocalNodeJs (/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:229:12)
    at AwsInvokeLocal.invokeLocal (/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:114:19)
From previous event:
    at Object.invoke:local:invoke [as hook] (/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:24:10)
    at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:218:55)
From previous event:
    at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:218:22)
    at PluginManager.run (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:237:17)
    at variables.populateService.then (/usr/local/lib/node_modules/serverless/lib/Serverless.js:99:33)
    at runCallback (timers.js:800:20)
    at tryOnImmediate (timers.js:762:5)
    at processImmediate [as _immediateCallback] (timers.js:733:5)
From previous event:
    at Serverless.run (/usr/local/lib/node_modules/serverless/lib/Serverless.js:86:74)
    at serverless.init.then (/usr/local/lib/node_modules/serverless/bin/serverless:39:50)
    at <anonymous>
TypeError:$。Deferred不是一个函数
在Object.fetch_模式(/vagrant/project/resources/model.js:17:26)
在Object.init(/vagrant/project/resources/model.js:11:14)
在module.exports.pixel_event_lambda_producer(/vagrant/project/handler.js:9:10)
在awsinovokelocal.invokeLocalNodeJs(/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:229:12)
在awsinovokelocal.invokeLocal(/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:114:19)
从以前的事件:
在Object.invoke:local:invoke[as hook](/usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:24:10)
在BbPromise.reduce(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:218:55)
从以前的事件:
在PluginManager.invoke(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:218:22)
在PluginManager.run(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:237:17)
在variables.populateService.then(/usr/local/lib/node_modules/serverless/lib/serverless.js:99:33)
运行回调时(timers.js:800:20)
在tryOnImmediate(timers.js:762:5)
在processImmediate[as_immediateCallback](timers.js:733:5)
从以前的事件:
在Serverless.run(/usr/local/lib/node_modules/Serverless/lib/Serverless.js:86:74)
在serverless.init.then(/usr/local/lib/node\u modules/serverless/bin/serverless:39:50)
在

您将jQuery与jQuery UI混淆了。在model.js中,替换:

var $ = global.jQueryUI;
与:

var $ = global.jQuery;

是一种jQuery方法,而不是jQuery UI功能。

当我特别需要jQuery延迟模块时,问题得到了解决,可以在这里找到:

var$=global.jQueryUI->
var$=global.jQuery
我尝试使用JQuery,但出现错误:$。延迟不是函数我尝试使用JQuery,但出现错误:$。延迟不是函数查看
.serverless
文件夹中的zip文件夹。你看到那里的jQuery模块了吗?是的,我可以在里面zip文件夹的node_modules目录中看到jQuery模块。serverlessI已添加异常^。如果在本地运行此文件,它是否工作?尝试直接使用
节点处理程序运行它。也。请在不使用
global
的情况下重试,并将其替换为
require('jquery')
var $ = global.jQuery;