Функція Javascript require (), яка надає ReferenceError: require не визначена


94

В основному, я використовую javascript для вилучення даних із магазину Google Play за допомогою:

1-запит

2-Cheerios

3-QueryString

Я використовував Google Market API від Github, який використовує такі вимоги:

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

Але я отримую наступне

ReferenceError: вимога не визначена ...

Отже, у мене немає вимоги до javascript, який для мене або є новим, або це щось незвичне.


15
Так, requireне визначається у браузерах. Ви змішали підручники з NodeJS з підручниками для браузера.
elclanrs

1
Будь ласка, надайте посилання на бібліотеку, якою ви користуєтесь.
Квентін

Відповіді:


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()не є допустимою функцією в клієнтському javascript. Я рекомендую вам вивчити require.js, оскільки це розширює сторону клієнта, щоб надати вам цю функцію.


12

requireє частиною API визначення асинхронних модулів (AMD) .

Реалізація браузер може бути знайдений через require.js і нативная підтримка може бути знайдена в node.js .

Документація для бібліотеки, якою ви користуєтесь, повинна сказати вам, що вам потрібно для її використання, я думаю, вона призначена для роботи під Node.js, а не у браузерах.


@blogger - У вашому запитанні немає PHP, це все JavaScript.
Квентін

дуже вибачте за це, опублікували неправильне запитання, видалили, що вихідне посилання: посилання та воно засноване на javascript, все ще не може вирішити проблему за допомогою require.js
Хунайн Усман,

@blogger - Цей модуль має всі ознаки того, що він розроблений для роботи з Node.JS. Можливо, це взагалі не працюватиме у браузері.
Квентін

прочитавши всі відповіді на це запитання, я зараз можу зрозуміти: p спасибі за вашу співпрацю та кодування та розпочав дослідження на node.js зараз
Хунайн Усман,

require є частиною Commonjs, а не AMD.
гомілка

4

Так, require - це функція Node.JS, яка не працює в сценаріях на стороні клієнта без певних вимог. Якщо ви отримуєте цю помилку під час написання коду electronJS, спробуйте наступне:

У свою декларацію BrowserWindow додайте таке поле webPreferences: тобто замість простого mainWindow = new BrowserWindow()напишіть

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

2

Для мене проблема полягала в тому, що у мене не був встановлений режим побудови веб-пакета як "виробничий" для пакету, на який я посилався. Явно встановивши його на "build": "webpack --mode production" вирішило проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.