Hàm request () trong Javascript đưa ra ReferenceError: request không được định nghĩa


94

Về cơ bản, tôi đang sử dụng javascript để thu thập dữ liệu từ cửa hàng Google Play bằng cách sử dụng:

1-Yêu cầu

2-Cheerios

3-QueryString

Tôi đã sử dụng API Google Market từ Github, sử dụng các yêu cầu như sau:

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

Nhưng tôi nhận được những điều sau đây

ReferenceError: request không được định nghĩa ...

Vì vậy, tôi không có yêu cầu trong javascript hoặc là mới đối với tôi hoặc đây là một cái gì đó khác thường.


15
Có, requirekhông được xác định trong các trình duyệt. Bạn đã kết hợp hướng dẫn NodeJS với hướng dẫn trình duyệt.
elclanrs

1
Vui lòng cung cấp một liên kết đến thư viện bạn đang sử dụng.
Quentin

Câu trả lời:


86

RequestJS là một tệp JavaScript và trình tải mô-đun. Nó được tối ưu hóa để sử dụng trong trình duyệt, nhưng nó có thể được sử dụng trong các môi trường JavaScript khác, như Rhino và Node. Sử dụng một trình tải tập lệnh mô-đun như RequestJS sẽ cải thiện tốc độ và chất lượng mã của bạn.

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

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

Thêm cái này vào dự án của bạn: https://requirejs.org/docs/release/2.3.5/minified/require.js

và xem qua http://requirejs.org/docs/api.html này


32

Theo mặc định require()không phải là một hàm hợp lệ trong javascript phía máy khách. Tôi khuyên bạn nên xem xét request.js vì điều này mở rộng phía máy khách để cung cấp cho bạn chức năng đó.


12

requirelà một phần của API Định nghĩa mô-đun không đồng bộ (AMD) .

Một thực hiện trình duyệt có thể được tìm thấy qua require.js và hỗ trợ bản địa có thể được tìm thấy trong Node.js .

Tài liệu cho thư viện bạn đang sử dụng sẽ cho bạn biết những gì bạn cần sử dụng nó, tôi nghi ngờ rằng nó được thiết kế để chạy dưới Node.js chứ không phải trong các trình duyệt.


@blogger - Không có PHP trong câu hỏi của bạn, tất cả đều là JavaScript.
Quentin

Rất tiếc về điều đó, đăng trên câu hỏi sai, đã xóa rằng liên kết nguồn là: liên kết và nó dựa trên javascript, vẫn không thể giải quyết vấn đề bằng cách sử dụng request.js
Hunain Usman

@blogger - Mô-đun đó có tất cả các điểm nổi bật là được thiết kế để chạy với Node.JS. Nó có thể sẽ không hoạt động trên trình duyệt.
Quentin

sau khi đọc tất cả các câu trả lời từ câu hỏi này tôi có thể hiểu bây giờ,: p thanx cho sự hợp tác và mã hóa của bạn và bắt đầu nghiên cứu về Node.js nay
Hunain Usman

request là một phần của Commonjs không phải AMD.
shin

4

Có, request là một hàm Node.JS và không hoạt động trong kịch bản phía máy khách nếu không có các yêu cầu nhất định. Nếu bạn gặp lỗi này khi viết mã electronJS, hãy thử các cách sau:

Trong khai báo BrowserWindow của bạn, hãy thêm trường WebPreferences sau: nghĩa là, thay vì đơn giản mainWindow = new BrowserWindow(), hãy viết

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

2

Đối với tôi, vấn đề là tôi chưa đặt chế độ xây dựng webpack thành sản xuất cho gói mà tôi đang tham chiếu. Đặt chế độ này thành "xây dựng" một cách rõ ràng: "webpack - chế độ sản xuất" đã khắc phục sự cố.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.