【发布时间】:2023-03-07 12:41:01
【问题描述】:
请帮帮我,我正在使用以下代码:
index.js:
var $ = require('./node_modules/jquery/dist/jquery.min');
var _ = require('./node_modules/underscore/underscore-min');
var Backbone = require('./node_modules/backbone/backbone-min');
require('./model/models');
run();
function run(){
var session = new ****.***.Models.CustomerSession();
session.save({
"authenticators": ["********","****"]
}).always(function(xhr){
do_something...
});
}
models.js:
**** = {};
****.*** = {};
****.***.Models = {};
var _ = require('../node_modules/underscore/underscore-min');
var Backbone = require('../node_modules/backbone/backbone-min');
/////////////MODELS/////////////
****.***.Models.CustomerSession = Backbone.Model.extend({
urlRoot : 'https://*****.****.com/api/***/customer_session/'
});
****.***.Models.Transaction = Backbone.Model.extend({
urlRoot : 'https://*****.****.com/api/***/transaction/'
});
****.***.Models.FaultType = Backbone.Model.extend({
urlRoot : 'https://*****.****.com/api/***/fault_type/'
});
****.***.Models.FaultTypeSet = Backbone.Model.extend({
urlRoot : 'https://*****.****.com/api/***/fault_type/'
});
****.***.Models.Task = Backbone.Model.extend({
urlRoot : 'https://*****.****.com/api/***/task/'
});
///////////////////////////////
并得到以下错误:“无法读取未定义的属性 'ajax'”... 这是项目中除 node_modules 库之外的所有代码... 我认为骨干无法识别 $ 符号,但我不确定也不知道如何处理这个问题...... 请帮助我...
这是我看到的错误日志:
c:\ce\test_script\node_modules\backbone\backbone-min.js:1
h:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.appl
^
TypeError: Cannot read property 'ajax' of undefined
at Object.e.ajax (c:\ce\test_script\node_modules\backbone\backbone-min.js:1:14801)
at e.sync (c:\ce\test_script\node_modules\backbone\backbone-min.js:1:14518)
at i.extend.sync (c:\ce\test_script\node_modules\backbone\backbone-min.js:1:3208)
at i.extend.save (c:\ce\test_script\node_modules\backbone\backbone-min.js:1:5716)
at run (c:\ce\test_script\index.js:14:13)
at Object.<anonymous> (c:\ce\test_script\index.js:10:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Process finished with exit code 8
这是使用主干代替主干分钟时的错误日志:
c:\ce\test_script\node_modules\backbone\backbone.js:1209
return Backbone.$.ajax.apply(Backbone.$, arguments);
^
TypeError: Cannot read property 'ajax' of undefined
at Object.Backbone.ajax (c:\ce\test_script\node_modules\backbone\backbone.js:1209:22)
at Backbone.sync (c:\ce\test_script\node_modules\backbone\backbone.js:1188:38)
at _.extend.sync (c:\ce\test_script\node_modules\backbone\backbone.js:286:28)
at _.extend.save (c:\ce\test_script\node_modules\backbone\backbone.js:493:18)
at run (c:\ce\test_script\index.js:17:13)
at Object.<anonymous> (c:\ce\test_script\index.js:10:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Process finished with exit code 8
【问题讨论】:
-
为了帮助您,我们需要有关错误的更多信息。它是否说明了错误发生在哪个文件中,在哪一行等等。给我们尽可能多的信息
-
似乎没有加载 jQuery 库。可能你也需要在models.js中
require它。 -
将
var $ = require('./node_modules/jquery/dist/jquery.min');添加到第二个文件中,你就是金子了 -
谢谢大家,但还是不行
-
您可能需要传入 jquery 或定义 jquery 用于 require 的位置,尤其是在节点端时。那里有一些范围,因此 var $ 可能不在全局范围内。
标签: javascript jquery ajax backbone.js require