时出于某种原因不是函数,当我运行npm start并且我点击浏览器时,出现此错误的堆栈跟踪。
类型错误:$就不是一个函数
at getLocationFromIp (G:\Github\Expressjs\nodetest1\routes\index.js:13:7)
at G:\Github\Expressjs\nodetest1\routes\index.js:24:14
会有人能告诉我为什么吗?这是我的代码。谢谢!
var express = require('express');
var router = express.Router();
var externalip = require('external-ip');
var $ = require('jquery');
getLocationFromIp = function() {
$.ajax({
url:"freegeoip.net/json/",
type: "GET",
data: null,
dataType: "json",
success: function(){console.log("success!")}
});
}
router.get('/', function(req, res) {
var ip = getLocationFromIp();
res.render('index', { 'ip' : "hi"});
});
试着在$(document).ready(function(){})函数中添加代码 – Dale
@Dale - 什么'document'? – Quentin
问题可能在于通过require函数同步加载Jquery。有没有一种方法可以在JQuery脚本加载后触发getLocationFromIp函数?这有可能解决你的问题。 – Elvanos