Javascript require () ฟังก์ชันที่ให้ ReferenceError: ต้องไม่กำหนด


94

โดยทั่วไปฉันใช้ javascript เพื่อขูดข้อมูลจาก Google Play Store โดยใช้:

1 คำขอ

2- เชียร์ออส

3-QueryString

ฉันใช้ Google Market API จาก Github ซึ่งต้องใช้ดังต่อไปนี้:

var request   = require('request');
var cheerio   = require('cheerio');
var qs      = require('querystring');

แต่ฉันได้รับสิ่งต่อไปนี้

ReferenceError: ไม่ได้กำหนดต้อง ...

ดังนั้นฉันไม่จำเป็นต้องใช้จาวาสคริปต์ซึ่งเป็นสิ่งใหม่สำหรับฉันหรือนี่เป็นสิ่งที่ผิดปกติ


15
ใช่requireไม่ได้กำหนดไว้ในเบราว์เซอร์ คุณผสมบทช่วยสอน NodeJS กับแบบฝึกหัดเบราว์เซอร์
elclanrs

1
โปรดระบุลิงก์ไปยังไลบรารีที่คุณใช้งาน
Quentin

คำตอบ:


86

RequireJS คือไฟล์ JavaScript และตัวโหลดโมดูล เหมาะสำหรับการใช้งานในเบราว์เซอร์ แต่สามารถใช้ในสภาพแวดล้อม JavaScript อื่น ๆ เช่น Rhino และ Node การใช้ตัวโหลดสคริปต์แบบโมดูลาร์เช่น RequireJS จะช่วยปรับปรุงความเร็วและคุณภาพของโค้ดของคุณ

IE 6+ .......... compatible ✔
Firefox 2+ ..... compatible ✔
Safari 3.2+ .... compatible ✔
Chrome 3+ ...... compatible ✔
Opera 10+ ...... compatible ✔

http://requirejs.org/docs/download.html

เพิ่มสิ่งนี้ในโครงการของคุณ: https://requirejs.org/docs/release/2.3.5/minified/require.js

และดูที่http://requirejs.org/docs/api.htmlนี้


32

ตามค่าเริ่มต้นrequire()ไม่ใช่ฟังก์ชันที่ถูกต้องในจาวาสคริปต์ฝั่งไคลเอ็นต์ ฉันขอแนะนำให้คุณดูrequire.jsเนื่องจากจะขยายฝั่งไคลเอ็นต์เพื่อให้คุณมีฟังก์ชันนั้น


12

requireเป็นส่วนหนึ่งของความหมายไม่ตรงกัน Module (AMD) API

การดำเนินเบราว์เซอร์ที่สามารถพบได้ผ่านrequire.jsและสนับสนุนพื้นเมืองสามารถพบได้ในNode.js

เอกสารสำหรับไลบรารีที่คุณใช้ควรจะบอกคุณว่าคุณต้องใช้อะไรฉันสงสัยว่ามันตั้งใจให้ทำงานภายใต้ Node.js ไม่ใช่ในเบราว์เซอร์


@blogger - ไม่มี PHP ในคำถามของคุณ แต่เป็น JavaScript ทั้งหมด
Quentin

ขออภัยด้วยที่โพสต์ในคำถามที่ไม่ถูกต้องได้ลบไปแล้วว่าลิงก์ต้นทางคือ: ลิงค์และเป็นจาวาสคริปต์ แต่ยังไม่สามารถแก้ไขปัญหาได้โดยใช้ require.js
Hunain Usman

@blogger - โมดูลนั้นมีจุดเด่นทั้งหมดของการออกแบบให้ทำงานกับ Node.JS มันอาจใช้ไม่ได้ในเบราว์เซอร์เลย
Quentin

หลังจากอ่านคำตอบทั้งหมดจากคำถามนี้ฉันเข้าใจได้แล้ว: ขอบคุณสำหรับความร่วมมือและการเขียนโค้ดของคุณและเริ่มค้นคว้าเกี่ยวกับ node.js ตอนนี้
Hunain Usman

ต้องเป็นส่วนหนึ่งของ Commonjs ไม่ใช่ AMD
หน้าแข้ง

4

ใช่ต้องเป็นฟังก์ชัน Node.JS และไม่ทำงานในการเขียนสคริปต์ฝั่งไคลเอ็นต์โดยไม่มีข้อกำหนดบางประการ หากคุณได้รับข้อผิดพลาดนี้ขณะเขียนโค้ด electronJS ให้ลองทำดังต่อไปนี้:

ในการประกาศ BrowserWindow ของคุณเพิ่มฟิลด์ webPreferences ต่อไปนี้: เช่นแทนที่จะธรรมดาmainWindow = new BrowserWindow(), การเขียน

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });

2

สำหรับฉันปัญหาคือฉันไม่ได้ตั้งค่าโหมดการสร้างเว็บแพ็กเป็นเวอร์ชันที่ใช้งานจริงสำหรับแพ็กเกจที่ฉันอ้างถึงการตั้งค่าอย่างชัดเจนเป็น "build": "webpack --mode production" ช่วยแก้ปัญหาได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.