[英]TypeError: require(…).jsdom is not a function
我使用visual studio 2015進行nodejs web開發。
我有類似nodejs的以下包。
我的server.js是
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
var jsdom = require('jsdom');
var path = require('path');
var port = process.env.port || 1337;
var app = express();
app.use(bodyParser());
app.use('/bootstrap', express.static(__dirname + '/public/bootstrap'));
app.use('/css', express.static(__dirname + '/public/css'));
app.use('/jquery', express.static(__dirname + '/public/jquery'));
app.use('/pages', express.static(__dirname + '/public/pages'));
app.use('/popper', express.static(__dirname + '/public/popper'));
app.use('/scripts', express.static(__dirname + '/public/scripts'));
app.get('/', function (request, response) {
var $ = require('jquery');
var title = $(html).find('title').text();
console.log(title);
response.send("Hello node");
});
app.listen(port);
無法使用jquery獲取錯誤。 “ TypeError:require(...)。jsdom不是一個函數 ”
TypeError: require(...).jsdom is not a function
at create (c:\users\XYZ12\documents\visual studio 2015\Projects\NodeMovieList\NodeMovieList\node_modules\jquery\lib\node-jquery.js:5:31)
at c:\users\XYZ12\documents\visual studio 2015\Projects\NodeMovieList\NodeMovieList\node_modules\jquery\lib\node-jquery.js:9435:18
at Object.<anonymous> (c:\users\XYZ12\documents\visual studio 2015\Projects\NodeMovieList\NodeMovieList\node_modules\jquery\lib\node-jquery.js:9437:2)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
嘗試使用以下,
var jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { document } = (new JSDOM('')).window;
global.document = document;
參考: https : //github.com/airbnb/enzyme/issues/942#issuecomment-314715229
此問題是由於您使用的舊版jQuery,請移至較新版本3.2.1。
我也面臨同樣的錯誤,轉移到新版本解決了這個問題。 您可以查看此答案以獲取更多信息: https : //stackoverflow.com/a/47215319/5892553
這樣做如下:
var jsdom = require('jsdom'); const { JSDOM } = jsdom; const { window } = new JSDOM(); const { document } = (new JSDOM('')).window; global.document = document; var $ = jQuery = require('jquery')(window);
希望這可以幫助您或任何一直面臨這些類型問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.